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

Страницы: 1
Run-time error '1004': Application-defined or object-defined error, Run-time error '1004': Application-defined or object-defined error
 
New, sokol92, добрый день!

Спасибо Вам огромное, ошибка больше не появляется!
Надеюсь это никак не повлияет на работу макроса, проверю!

Еще раз, большое Вам спасибо!
Run-time error '1004': Application-defined or object-defined error, Run-time error '1004': Application-defined or object-defined error
 
sokol92,Дмитрий(The_Prist) Щербаков, добрый день!

В загруженном скрине то что отображается при открытии нового чистого файла excel, и честно говоря я не очень понимаю что это за первые два проекта, их раньше не было и я их не создавал:
1) atpvbaen.xls (ATPVBAEN.XLAM) - причем этот проект под паролем, мною не создавался
2) VBAProject (FUNCRES.XLAM) - этот тоже мною не создавался

Я бы с удовольствием их удалил, подскажите пожалуйста как это сделать, спасибо!
Run-time error '1004': Application-defined or object-defined error, Run-time error '1004': Application-defined or object-defined error
 
Jack Famous, добрый день!

Спасибо за комментарии относительно кода.

Но тут кажется дело в чем то другом, т.к. эта история повторяется (при закрытии) со всеми файлами excel в не зависимости есть там макрос или нет.

Т.е. при попытки закрыть на крестик любой файл excel перед закрытием всплывает данное сообщение:

Microsoft Visual Basic

Run-time error '1004':

Application-defined or object-defined error

Причем активна кнопка только End и Help

Вообще не понимаю как от этого избавиться!
Run-time error '1004': Application-defined or object-defined error, Run-time error '1004': Application-defined or object-defined error
 
Добрый день!

Подскажите пожалуйста как победить ошибку "Run-time error '1004': Application-defined or object-defined error"

На рабочем компе есть макрос который отлично работает уже как год без каких либо проблем, его цель, открыть excel обновить все данные далее сохранить данные в PDF и сделать рассылку по почте, все это происходит ежедневно по утрам.

Так вот в 2023 году начала лезть эта ошибка, причем сам макрос полностью выполняется, а ошибка вылетает при закрытии excel файла.
И если в выходные дни у меня этот файл в 2022 отрабатывался полностью на автомате, то теперь всплывает эта ошибка с которой нужно согласиться и только после этого файл excel закрывается.

Помогите пожалуйста, кто сталкивался, как это вылечить, заранее спасибо!
Код
Private Sub Workbook_Open()

Call MyMacro

Application.DisplayAlerts = False
    If Application.Workbooks.Count = 1 Then
    Application.Quit
    End If

End Sub

__________________________________________________________________________________________________


Sub MyMacro()
    ThisWorkbook.RefreshAll
    ThisWorkbook.Save
    Call MyMacro1
    
End Sub

___________________________________________________________________________________________________


Sub MyMacro1()
    Sheets(Array("Свод")).Select
    Sheets("Свод").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Daily report.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Sheets("Свод").Select
    Range("A1").Select
    
    Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
  
    On Error Resume Next
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear
    If objOutlookApp Is Nothing Then
    Set objOutlookApp = CreateObject("Outlook.Application")
End If
    objOutlookApp.Session.Logon
    Set objMail = objOutlookApp.CreateItem(0)
    If Err.Number <> 0 Then
    Set objOutlookApp = Nothing: Set objMail = Nothing
    MsgBox "Не удалось создать новое сообщение"
    Exit Sub
End If
  
sTo = Range("B225").Value
sSubject = "Daily report"
sBody = "Daily report"
sAttachment = "Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Daily report.pdf"
With objMail
    .To = sTo
    .CC = ""
    .BCC = ""
    .Subject = sSubject
    .Body = sBody
    .Attachments.Add sAttachment
    .Save
    .Send
End With
Set objOutlookApp = Nothing: Set objMail = Nothing
    
End Sub
Изменено: Arslan Ikhsanov - 19.01.2023 13:41:40
Макрос для автоматического ввода пароля и запуска обновления в запароленном для правок файле!
 
sokol92, огромное Вам спасибо, с Вашей неоценимой помощью я разобрался, все работает как было задумано!
Макрос для автоматического ввода пароля и запуска обновления в запароленном для правок файле!
 
sokol92, сработало вот так:
Код
Private Sub Workbook_Open()

Application.OnTime Now, "MyMacroPassword"

End Sub
и макрос:
Код
Sub MyMacroPassword()

    Workbooks.Open Filename:= _
    "C:\Users\a.ihsanov\Desktop\Тест_для_обновления_с_паролем.xlsm", WriteResPassword:="QWERTY"
    ThisWorkbook.RefreshAll
    ThisWorkbook.Save
    ThisWorkbook.Close
 
End Sub
Но, макрос только открыл файл с паролем, этапы которые должны его обновить, сохранить и закрыть почему то не сработали
Код
ThisWorkbook.RefreshAll
ThisWorkbook.Save
ThisWorkbook.Close
Думаю чего то явно не хватает для этих трех этапов
Макрос для автоматического ввода пароля и запуска обновления в запароленном для правок файле!
 
sokol92, да все так, один в один
Макрос для автоматического ввода пароля и запуска обновления в запароленном для правок файле!
 
sokol92, к сожалению ничего не происходит, ни обновления файла, ни ругани на макрос, думаю что-то не то с самим макросом!
Макрос для автоматического ввода пароля и запуска обновления в запароленном для правок файле!
 
sokol92, посмотрите плиз, Доп. файл запускается и не ругается, но с основным ничего не происходит, возможно я что-то упустил, спасибо!

В обработчике:
Код
Private Sub Workbook_Open()

Application.OnTime Now, "MyMacro"

End Sub
Сам макрос:
Код
Sub MyMacro()
    Application.ScreenUpdating = False
    Set wb = ThisWorkbook
    Workbooks.Open Filename:= _
    "C:\Users\a.ihsanov\Desktop\Тест_для_обновления_с_паролем.xlsm", WriteResPassword:="QWERTY"
    Set wb1 = ActiveWorkbook
    wb.Activate
    ActiveWorkbook.RefreshAll
    wb.Save
    wb1.Close
    Application.ScreenUpdating = True
End Sub
Хотел уточнить, нужно ли использование оператора Dim в заголовке макроса, так как сейчас без него?
Макрос для автоматического ввода пароля и запуска обновления в запароленном для правок файле!
 
sokol92, т.е. логика такая, я макрос #1 помещаю в Доп. файл к основному, а в основном по сути ничего прописывать и не надо будет, он автоматом отработает процедуры указанные в Доп. файле?
Макрос для автоматического ввода пароля и запуска обновления в запароленном для правок файле!
 
sokol92, добрый день!

Можно пример, как это должно выглядеть, спасибо!

Разве нельзя сразу на старте при открытии распаролить файл для правки?
Макрос для автоматического ввода пароля и запуска обновления в запароленном для правок файле!
 
Изменил запрос таким образом, все процедуры выполняются, но все равно на старте требует ввести "пароль" который по идее у меня уже прописан и все должно запускаться на автомате:
Код
Private Sub Workbook_Open()

Call MyMacroPassword
ActiveWorkbook.Close SaveChanges:=False

End Sub



Dim TimeToRun

Sub MyMacroPassword()
    Workbooks.Open Filename:= _
    "C:\Users\ЧЧЧЧЧЧЧЧЧЧЧ\Desktop\Òåñò_äëÿ_îáíîâëåíèÿ_ñ_ïàðîëåì.xlsm", Password:="12345", WriteResPassword:="12345"
    Call MyMacro
 
End Sub

Sub MyMacro()
    ThisWorkbook.RefreshAll
    ThisWorkbook.Save
    ThisWorkbook.Close
    Call NextRun

End Sub

Sub NextRun()
    TimeToRun = TimeValue("17:05:00")
    Application.OnTime TimeToRun, "MyMacro"
End Sub

Sub Start()
    Call NextRun
End Sub

Sub Finish()
    Application.OnTime TimeToRun, "MyMacro", , False
End Sub
Макрос для автоматического ввода пароля и запуска обновления в запароленном для правок файле!
 

Добрый день!

Подскажите пожалуйста, цель следующая, есть файл с паролем на редактирование, необходимо, чтобы он открывался по времени под паролем для правки, далее обновлял все внешние и внутренние подключения, сохранялся и закрывался, у меня получилось так, но не очень работает:

Код
Sub MyMacro()
    Application.ScreenUpdating = False
    Set wb = ThisWorkbook
    Workbooks.Open Filename:= _
    "C:\Users\ЯЯЯЯЯЯЯЯЯ\Desktop\Òåñò_äëÿ_îáíîâëåíèÿ_ñ_ïàðîëåì.xlsm", Password:="12345", WriteResPassword:="12345"
    Set wb1 = ActiveWorkbook
    wb.Activate
    ActiveWorkbook.RefreshAll
    wb.Save
    wb1.Close
    Application.ScreenUpdating = True
End Sub

При запуске он все равно запрашивает у меня пароль для входа в файл для редактирования, хотя в макросе я его учел, вот не могу понять как это исправить.

Спасибо!
Изменено: Arslan Ikhsanov - 11.07.2022 16:03:38
Как в сводной таблице Excel показать последние 14 дат, по дням, при условии, что таблица ежедневно обновляется и эти 14 дат должны смещаться с учетом новой даты!
 
_Boroda_, Спасибо Вам большое!
Как в сводной таблице Excel показать последние 14 дат, по дням, при условии, что таблица ежедневно обновляется и эти 14 дат должны смещаться с учетом новой даты!
 
esheg, добрый день!

Направляю Вам пример таблицы с описанием внутри необходимой логики.

 
Как в сводной таблице Excel показать последние 14 дат, по дням, при условии, что таблица ежедневно обновляется и эти 14 дат должны смещаться с учетом новой даты!
 
Цитата
написал:
Arslan Ikhsanov,
можете воспользоваться пунктом 3 в  данной статье
Спасибо за комментарий, думаю, это больше применимо для статичной таблицы.
Как в сводной таблице Excel показать последние 14 дат, по дням, при условии, что таблица ежедневно обновляется и эти 14 дат должны смещаться с учетом новой даты!
 
Добрый день

Как в сводной таблице Excel показать последние 14 дат, по дням, при условии, что таблица ежедневно обновляется и эти 14 дат должны смещаться с учетом новой даты!

Подскажите пожалуйста, возможно у кого-то были подобные кейсы

Спасибо
Сохраняю из Excel в PDF данных ровно на три листа PDF, но плюсом добавляются еще два пустых листа, как от них избавиться?, Импорт из Excel в PDF, как удалить пустые дополнительные листы
 
Спасибо Вам за совет!

Я так понял, что кое, где края выходили, поправил, вроде пока все нормально стало!
Помогите пожалуйста доработать макрос, авто открытия Excel, сохранения и закрытия, с ежедневным повторяющемся циклом!
 
Спасибо Вам большое, очень помогло!  
Сохраняю из Excel в PDF данных ровно на три листа PDF, но плюсом добавляются еще два пустых листа, как от них избавиться?, Импорт из Excel в PDF, как удалить пустые дополнительные листы
 
Добрый день!

Подскажите пожалуйста:
Сохраняю из Excel в PDF данных ровно на три листа PDF, но плюсом добавляются еще два пустых листа, как от них избавиться?
Подскажите пожалуйста по макросу, обновление по времени + сохранение в PDF, Макрос, обновление по времени + сохранение в PDF
 
Спасибо!
Попробую, посмотрю как сработает.
Помогите пожалуйста доработать макрос, авто открытия Excel, сохранения и закрытия, с ежедневным повторяющемся циклом!
 
Помогите пожалуйста доработать макрос, сейчас он работает при открытом файле Excel так: (по времени обновляет связи, далее сохраняет файл и параллельно сохраняет данные в PDF и далее делает рассылку PDF файла по почте).

Есть необходимость его усовершенствовать, таким образом, чтобы закрытый файл Excel открылся по расписанию, далее все процедуры описанные выше, и далее закрытие файла, и так, чтобы этот цикл повторялся ежедневно.

Заранее Вам спасибо за любую помощь!

Сейчас имею следующий код, который обрабатывает процедуры описанные выше:
Код
Sub MyMacro()
    ThisWorkbook.RefreshAll
    ThisWorkbook.Save
    ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Ежедневный отчет.pdf", OpenAfterPublish:=False
    Call MyMacro1
    Call NextRun
End Sub

Sub MyMacro1()
 Sheets(Array("Свод")).Select
    Sheets("Свод").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Ежедневный отчет.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Sheets("Свод").Select
    Range("A1").Select
    
    Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
  
    On Error Resume Next
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear
    If objOutlookApp Is Nothing Then
    Set objOutlookApp = CreateObject("Outlook.Application")
End If
    objOutlookApp.Session.Logon
    Set objMail = objOutlookApp.CreateItem(0)
    If Err.Number <> 0 Then
    Set objOutlookApp = Nothing: Set objMail = Nothing
    MsgBox "Не удалось создать новое сообщение"
    Exit Sub
End If
  
sTo = Range("L49").Value
sSubject = "Ежедневный отчет PDF"
sBody = "Ежедневный отчет PDF"
sAttachment = "Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Ежедневный отчет.pdf"
With objMail
    .To = sTo
    .CC = ""
    .BCC = ""
    .Subject = sSubject
    .Body = sBody
    .Attachments.Add sAttachment
    .Save
    .Send
End With
Set objOutlookApp = Nothing: Set objMail = Nothing
    
    Call NextRun
End Sub

Sub NextRun()
    TimeToRun = TimeValue("12:04:00")
    Application.OnTime TimeToRun, "MyMacro"
End Sub

Sub Start()
    Call NextRun
End Sub

Sub Finish()
    Application.OnTime TimeToRun, "MyMacro", , False
End Sub
Подскажите пожалуйста по макросу, обновление по времени + сохранение в PDF, Макрос, обновление по времени + сохранение в PDF
 
В VBA нет распараллеливания вычислений - пока выполняется код, другие действия выполнить нельзя (если это не разрешено в коде). В случае с обновлением связей - по логике: пока обновление не закончено, макрос дальше не работает.
Подскажите пожалуйста по макросу, обновление по времени + сохранение в PDF, Макрос, обновление по времени + сохранение в PDF
 
Добрый день!

evgeniygeo спасибо большое за Ваш комментарий!

Решает ли вашу задачу RefreshAll? - Да, справляется отлично, активирует все внешние и внутренние подключения, тем самым файл обновляется!
Все ли успевает обновиться до следующих шагов? - Насколько я понял, следующий шаг не начинается пока не заканчивается предыдущий, поэтому, да, все шаги отрабатывают свою задачу!

Я вроде разобрался, решил это следующим образом:

Код
Sub MyMacro()
    ThisWorkbook.RefreshAll
    ThisWorkbook.Save
    ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="Z:\Common\Îò÷åòû ê ÊÁ\2022\Äëÿ ðàññûëêè PDF\Åæåäíåâíûé îò÷åò.pdf", OpenAfterPublish:=False
    Call NextRun
End Sub

Sub MyMacro1()
 Sheets(Array("Ñâîä")).Select
    Sheets("Ñâîä").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "Z:\Common\Îò÷åòû ê ÊÁ\2022\Äëÿ ðàññûëêè PDF\Åæåäíåâíûé îò÷åò.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
    Sheets("Ñâîä").Select
    Range("A1").Select
    Call NextRun
End Sub

Sub NextRun()
    TimeToRun = TimeValue("07:00:00")
    Application.OnTime TimeToRun, "MyMacro"
End Sub

Sub Start()
    Call NextRun
End Sub

Sub Finish()
    Application.OnTime TimeToRun, "MyMacro", , False
End Sub
Подскажите пожалуйста по макросу, обновление по времени + сохранение в PDF, Макрос, обновление по времени + сохранение в PDF
 
Добрый день!

Подскажите пожалуйста, что не хватает в моем макросе для обновления и сохранения по времени Excel, и после, сохранения в PDF файл, буду очень Вам признателен!
Так как сейчас он только сохраняет файл и обновляет в Excel, но не сохраняет в PDF!
Заранее Всем Спасибо!
Код
Sub MyMacro()
    ThisWorkbook.RefreshAll
    ThisWorkbook.Save
    Call NextRun
End Sub

Sub NextRun()
    TimeToRun = TimeValue("21:40:00")
    Application.OnTime TimeToRun, "MyMacro"
End Sub

Sub MyMacro1()
    Sheets(Array("Свод")).Select
    Sheets("Свод").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Ежедневный отчет.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
    Sheets("Свод").Select
    Range("A1").Select
End Sub

Sub Start()
    Call NextRun
End Sub

Sub Finish()
    Application.OnTime TimeToRun, "MyMacro", , False
End Sub
Изменено: Arslan Ikhsanov - 24.06.2022 10:13:19
Страницы: 1
Наверх