Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 След.
Вычисления в книге, автоматически или вручную, как проверить в vba.
 
БМВ, Есть страница в закрытой сети с которой нужно вытащить данные на лист excel, через импорт дынных не получается, по этому вот так:
Изменено: Stalevar - 31.03.2022 15:23:07
Вычисления в книге, автоматически или вручную, как проверить в vba.
 
RAN,Данные со страницы html  
Вычисления в книге, автоматически или вручную, как проверить в vba.
 
RAN,
Set maTable = Htable(1) ' таблица под номером 1
Вычисления в книге, автоматически или вручную, как проверить в vba.
 
Ігор Гончаренко,Это пример.
Вот такой цикл:
Код
For i = 1 To maTable.Rows.Length 'как можно по другому вставить эти данные на лист?'
    For j = 1 To maTable.Rows(i - 1).Cells.Length    
     If Application.Calculation = xlCalculationAutomatic Then
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    End If    
        Worksheets("table").Cells(i, j) = maTable.Rows(i - 1).Cells(j - 1).innerText
    Next j
Next i
Вычисления в книге, автоматически или вручную, как проверить в vba.
 
Цикл длинный и во время него может включится Application.Calculation = xlCalculationAutomatic из другого макроса.
БМВ, Спасибо.
Вычисления в книге, автоматически или вручную, как проверить в vba.
 
БМВ,
Вот так:
Код
Sub zzz()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For i = 1 To 10000
    For j = 1 To 20
    If Application.Calculation = xlCalculationAutomatic Then
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    End If
        Worksheets("Лист1").Cells(i, j) = 4
    Next j
Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Вычисления в книге, автоматически или вручную, как проверить в vba.
 
Всем здрасти.
Есть код c циклом по вставке данных по ячейкам.
Код
Sub zzz()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For i = 1 To 10000
    For j = 1 To 20
        Worksheets("Лист1").Cells(i, j) = 4
    Next j
Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Проблема в том что во время работы данного цикла в книге могут происходить еще некоторые действия в которых присутствует:
 Application.Calculation = xlCalculationAutomatic, и тогда капец.
Можно ли перед циклом запретить любые действия или в самом цикле проверять режим вычисления?
Код
Sub zzz()
For i = 1 To 10000
    For j = 1 To 20

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

        Worksheets("Лист1").Cells(i, j) = 4
    Next j
Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Web-запрос с выбором параметров. Чем заменить DoEvents
 
1
Изменено: Stalevar - 20.12.2020 00:42:11
Web-запрос с выбором параметров. Чем заменить DoEvents
 
Андрей VG, Могли бы по подробнее про  NavigateComplete2
Web-запрос с выбором параметров. Чем заменить DoEvents
 
Код
1
Изменено: Stalevar - 20.12.2020 00:42:35
Определить по дате-времени, какая бригада работает
 
Ігор Гончаренко, Огромное Спасибо.
Определить по дате-времени, какая бригада работает
 
Ігор Гончаренко, Стало не правильно показывать бригаду.
28.10.20 17:10 показывает что работает бригада 2, а должна бригада 1
Определить по дате-времени, какая бригада работает
 
Ігор Гончаренко, где вас такому учат, капец формула.
Большое СПАСИБО.

Андрей VG, и Вам спасибо
Определить по дате-времени, какая бригада работает
 
Всем привет, подскажите пожалуйста как найти из таблицы какая бригада сейчас работает.
Вставить в строку с проверкой данных без форматирования.
 
Спасибо.
Вставить в строку с проверкой данных без форматирования.
 
vokilook,Здравствуйте.
Копирую строку выше, нажимаю кнопку Вставить.
Пишет нет данных.
"Задача вставить из буфера обмена в одну строку только цифры и без форматирования"
По ссылке сходил, почитал, спасибо.
Изменено: Stalevar - 27.07.2020 14:53:54
Вставить в строку с проверкой данных без форматирования.
 
Borrusale,
Спасибо.
Не много не то.
Нужно что бы скопировав вот эту строку с html таблицы:
.1060.3700.2400.0150.0150.0910.0590.0600.0240
каждая цифра была на своём месте: 0.1060 в первой ячейке; 0.3700 во второй ячейке, и так далее.
Изменено: Stalevar - 27.07.2020 10:08:39
Вставить в строку с проверкой данных без форматирования.
 
Привет всем.
Задача вставить из буфера обмена в одну строку только цифры и без форматирования.
пока что вот так:
Код
Sub Вставить()
On Error GoTo 3
Range("$C$3").Select
    ActiveSheet.PasteSpecial Link:=False, DisplayAsIcon:= _
        False, NoHTMLFormatting:=True
Range("$C$3").Select
Exit Sub
3
MsgBox "Нет данных"
End Sub

Не получается:
1- проверить данные на "только цифры"
2- вставлять только в одну строку C3:S3
Изменено: Stalevar - 23.07.2020 15:08:09
Веб запрос с выбором параметров с помощью Power Query
 
Подскажите, возможно ли сделать вот такой веб запрос с помощью Power Query.
Этот вопрос уже разбирал в далёком 2012 году, спасибо большое egonomist, всё работает по сей день.
Но хотелось бы попробовать в Power Query.

Есть страница html "1 параметры для хим" с которой делается запрос данных, на которой необходимо выбрать: Выбор:поробы, Интервал проб: Все (то есть от 1 до 100) , Временной интервал: лучше форму с выбором даты (либо просто Сегодня), Фильтр по марке: Все.  
Прикрепил архив ,там два html файла, первый ,это страница для ввода "1 параметры для хим", а вторая это куда нужно попасть "2 xim[1]/cgi-bin/xim.cgi".Это локалка туда не попасть ,только с работы.
Как запретить сохранение изменений в файле другими пользователями
 
Переделал.
Правда на кнопку меню нужно тоже пароль повесить так как на листе меню хулиганы нажмут либо Ctrl/S либо закроют с сохранением.
Изменено: Stalevar - 06.10.2019 21:25:59
Как запретить сохранение изменений в файле другими пользователями
 
Вот так сделал.
Это пример.
Как запретить сохранение изменений в файле другими пользователями
 
Дмитрий(The_Prist) Щербаков,
Лишние окна при открытии и попытки сохранить книгу
Как запретить сохранение изменений в файле другими пользователями
 
Ungrateful

Я вот так сохраняю
Application.CommandBars.FindControl(ID:=1605).Execute и сохранить.
Изменено: Stalevar - 06.10.2019 14:13:02
Как запретить сохранение изменений в файле другими пользователями
 
Андрей VG,
Нужно чтоб книгу не сохраняли, но мог я ее сохранить.
Интерфейс скрыт все запаролено.
Создал кнопку с вводом пароля на сохранение, перед сохранением скрываются все листы кроме одного, потом  Application.CommandBars.FindControl(ID:=1605).Execute и сохранить.
При запуске книги при включенных макросах нужные листы становятся видимыми.
Как запретить сохранение изменений в файле другими пользователями
 
Вроде нашел
Код
Application.CommandBars.FindControl(ID:=1605).Execute  
Как запретить сохранение изменений в файле другими пользователями
 
Спасибо.
А макросом можно включить режим конструктора?
Изменено: Stalevar - 05.10.2019 15:05:29
Как запретить сохранение изменений в файле другими пользователями
 
Цитата
ivanok_v2 написал:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)Cancel = TrueEnd Sub

А как сохранить книгу с этим кодом?
в модуле: ЭтаКнига
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub
Изменено: Stalevar - 05.10.2019 14:03:48
Если при выполнении макроса в одной книге работать в другой, иногда возникает ошибка.
 
Опять не работает  :(
Пробовал вот так с задержкой Application.Wait Now + TimeSerial(0, 0, 1) в замен  DoEvents
Может у кого есть какие мысли? Или смирится с ошибкой и во время выполнения макроса не чего не нажимать.
Код
Sub макрос1()
On Error GoTo 1' Если убрать On Error GoTo, то макрос просто останавливается не выдавая не каких ошибок
Application.EnableCancelKey = xlDisabled
dt1 = Now
dt2 = Now + 1
obnov = 10
s = ("http://100.20.29.225")' Страница ввода данных
UserForm2.WebBrowser1.Navigate (s)
Do While UserForm2.WebBrowser1.busy Or (UserForm2.WebBrowser1.ReadyState <> 4): DoEvents: Loop
'Вводим данные и расставляем чек боксы 
v_pr1 = v_prob1
v_pr2 = v_prob2
v_D1 = Format(CDate(dt1), "dd/mm/yyyy")
v_D2 = Format(CDate(dt2), "dd/mm/yyyy")
v_N1 = Plavka1
v_N2 = Plavka2
  
UserForm2.WebBrowser1.Document.forms(0).elements(0).Checked = True
UserForm2.WebBrowser1.Document.forms(0).elements(13).Checked = True
UserForm2.WebBrowser1.Document.forms(0).elements(2).Value = v_pr1
UserForm2.WebBrowser1.Document.forms(0).elements(3).Value = v_pr2
UserForm2.WebBrowser1.Document.forms(0).elements(14).Value = v_D1
UserForm2.WebBrowser1.Document.forms(0).elements(15).Value = v_D2
UserForm2.WebBrowser1.Document.forms(0).elements(16).Value = v_N1
UserForm2.WebBrowser1.Document.forms(0).elements(17).Value = v_N2
UserForm2.WebBrowser1.Document.forms(0).elements(19).Checked = True
  
'''DoEvents
 Application.Wait Now + TimeSerial(0, 0, 5)

UserForm2.WebBrowser1.Document.forms(0).submit' Нажимаем кнопку "Выбор" на странице и переходим в таблицу Хим анализа
 
 Application.Wait Now + TimeSerial(0, 0, 5)
'''DoEvents' Если убрать, то на лист excel приходят данные со страницы выбора параметров
 
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Do While UserForm2.WebBrowser1.busy Or (UserForm2.WebBrowser1.ReadyState <> 4): DoEvents: Loop
Set maPageHtml = UserForm2.WebBrowser1.Document
Set Htable = maPageHtml.getElementsByTagName("table")
Set maTable = Htable(1) ' the first table
Workbooks("книга1.xlsb").Worksheets("table").Cells.ClearContents 'удаляем все предыдущие записи на листе table
 
'запускаем цикл по всем ячейкам - последовательно заносим их на лист
 
For i = 1 To maTable.Rows.Length
    For J = 1 To maTable.Rows(i - 1).Cells.Length
        Workbooks("книга1.xlsb").Worksheets("table").Cells(i, J) = maTable.Rows(i - 1).Cells(J - 1).innerText
    Next J
Next i
  
Set maPageHtml = Nothing
  
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
      
      
      
  If Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$y$30") = "2" Then   ' если появилась новая
  
    Workbooks("книга1.xlsb").Activate
    Call Звук
   
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
   
Workbooks("книга1.xlsb").Worksheets("Лист2").Range("$g$17") = "3"
    Workbooks("книга1.xlsb").Worksheets("Лист2").Range("$g$16") = "1"
        Workbooks("книга1.xlsb").Sheets("Лист2").Range("$l$3") = dt1
    Workbooks("книга1.xlsb").Sheets("Лист2").Range("$m$3") = dt2
   Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$b$7") = Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$g$7")
Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$c$7") = Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$h$7")
       
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
 poiskPR = Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$t$28")
    MsgBox "Плавка №: " & Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$j$4") & "  Проба №: " & Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$K$4"), vbSystemModal
Else
    If Workbooks("книга1.xlsb").Worksheets("Лист2").Range("$g$16") = "5" Then
    obnov = 10
    Application.OnTime Now + TimeValue("00:00:" & obnov & ""), "Module1.Макрос1"
    End If
    
   End If
     
Exit Sub
  
1
Workbooks("книга1.xlsb").Activate
Call Звук2
  
If MsgBox("Неполадки с сетью. Продолжить обработку?", vbYesNo) = vbYes Then
Call макрос1
Else
Workbooks("книга1.xlsb").Worksheets("Лист2").Range("$g$17") = "3"
Workbooks("книга1.xlsb").Worksheets("Лист2").Range("$g$16") = "1"
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End If
  
End Sub
Изменено: Stalevar - 05.07.2019 10:24:03
Если при выполнении макроса в одной книге работать в другой, иногда возникает ошибка.
 
Проверил на работе, не работает без DoEvents.
Приходят данные в excel со страницы выбора параметров ( страница "s" )
Может кто подскажет чем заменить DoEvents, может паузу поставить?
Код
Sub макрос1()
On Error GoTo 1' Если убрать On Error GoTo, то макрос просто останавливается не выдавая не каких ошибок
Application.EnableCancelKey = xlDisabled
dt1 = Now
dt2 = Now + 1
obnov = 10
s = ("http://100.20.29.225")' Страница ввода данных
UserForm2.WebBrowser1.Navigate (s)
Do While UserForm2.WebBrowser1.busy Or (UserForm2.WebBrowser1.ReadyState <> 4): DoEvents: Loop
'Вводим данные и расставляем чек боксы 
v_pr1 = v_prob1
v_pr2 = v_prob2
v_D1 = Format(CDate(dt1), "dd/mm/yyyy")
v_D2 = Format(CDate(dt2), "dd/mm/yyyy")
v_N1 = Plavka1
v_N2 = Plavka2
 
UserForm2.WebBrowser1.Document.forms(0).elements(0).Checked = True
UserForm2.WebBrowser1.Document.forms(0).elements(13).Checked = True
UserForm2.WebBrowser1.Document.forms(0).elements(2).Value = v_pr1
UserForm2.WebBrowser1.Document.forms(0).elements(3).Value = v_pr2
UserForm2.WebBrowser1.Document.forms(0).elements(14).Value = v_D1
UserForm2.WebBrowser1.Document.forms(0).elements(15).Value = v_D2
UserForm2.WebBrowser1.Document.forms(0).elements(16).Value = v_N1
UserForm2.WebBrowser1.Document.forms(0).elements(17).Value = v_N2
UserForm2.WebBrowser1.Document.forms(0).elements(19).Checked = True
 
DoEvents

UserForm2.WebBrowser1.Document.forms(0).submit' Нажимаем кнопку "Выбор" на странице и переходим в таблицу Хим анализа
 
DoEvents' Если убрать, то на лист excel приходят данные со страницы выбора параметров

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Do While UserForm2.WebBrowser1.busy Or (UserForm2.WebBrowser1.ReadyState <> 4): DoEvents: Loop
Set maPageHtml = UserForm2.WebBrowser1.Document
Set Htable = maPageHtml.getElementsByTagName("table")
Set maTable = Htable(1) ' the first table
Workbooks("книга1.xlsb").Worksheets("table").Cells.ClearContents 'удаляем все предыдущие записи на листе table

'запускаем цикл по всем ячейкам - последовательно заносим их на лист

For i = 1 To maTable.Rows.Length
    For J = 1 To maTable.Rows(i - 1).Cells.Length
        Workbooks("книга1.xlsb").Worksheets("table").Cells(i, J) = maTable.Rows(i - 1).Cells(J - 1).innerText
    Next J
Next i
 
Set maPageHtml = Nothing
 
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
     
     
     
  If Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$y$30") = "2" Then   ' если появилась новая
 
    Workbooks("книга1.xlsb").Activate
    Call Звук
  
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
  
Workbooks("книга1.xlsb").Worksheets("Лист2").Range("$g$17") = "3"
    Workbooks("книга1.xlsb").Worksheets("Лист2").Range("$g$16") = "1"
        Workbooks("книга1.xlsb").Sheets("Лист2").Range("$l$3") = dt1
    Workbooks("книга1.xlsb").Sheets("Лист2").Range("$m$3") = dt2
   Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$b$7") = Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$g$7")
Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$c$7") = Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$h$7")
      
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
 poiskPR = Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$t$28")
    MsgBox "Плавка №: " & Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$j$4") & "  Проба №: " & Workbooks("книга1.xlsb").Worksheets("Лист6").Range("$K$4"), vbSystemModal
Else
    If Workbooks("книга1.xlsb").Worksheets("Лист2").Range("$g$16") = "5" Then
    obnov = 10
    Application.OnTime Now + TimeValue("00:00:" & obnov & ""), "Module1.Макрос1"
    End If
   
   End If
    
Exit Sub
 
1
Workbooks("книга1.xlsb").Activate
Call Звук2
 
If MsgBox("Неполадки с сетью. Продолжить обработку?", vbYesNo) = vbYes Then
Call макрос1
Else
Workbooks("книга1.xlsb").Worksheets("Лист2").Range("$g$17") = "3"
Workbooks("книга1.xlsb").Worksheets("Лист2").Range("$g$16") = "1"
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End If
 
End Sub
Если при выполнении макроса в одной книге работать в другой, иногда возникает ошибка.
 
Код
Sub общий_фас()
obnov = 10
'DoEvents
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Workbooks("Книга1.xlsb").Worksheets("table").Cells.ClearContents

For i = 1 To 100
'DoEvents
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
    For J = 1 To 10
    'DoEvents
        Workbooks("Книга1.xlsb").Worksheets("table").Cells(i, J) = 33
    Next J
Next i

'DoEvents
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
      
 If Workbooks("Книга1.xlsb").Worksheets("Лист2").Range("$g$16") = "5" Then
    Application.OnTime Now + TimeValue("00:00:" & obnov & ""), "общий_фас"
 End If
End Sub
Изменено: Stalevar - 27.06.2019 13:00:31
Страницы: 1 2 3 4 5 6 7 8 9 След.
Наверх