Страницы: 1
RSS
VBA: запуск макроса по нажатию кнопки меню "Сохранить" или "Сохранить как..."
 
Здравствуйте уважаемые
возник вопрос и не совсем представляю как правильно спросить даже чтобы получить правильный ответ в поиске.
Мне надо при нажатии кнопки "Сохранить" в меню или Файл \ "Сохранить как.." вызвать диалог сохранения файла и подставить в поле Имя файла имя которое будет собрано из значений определенных ячеек (с созданием имени вопросов нет).
Заранее благодарен за подсказки
 
В модуль книги:

Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim fName
    Application.EnableEvents = 0
    fName = Application.GetSaveAsFilename(InitialFileName:="h:\TMP\" & [a1], _
                                          fileFilter:="xls Files (*.xls), *.xls")
    If fName <> False Then
        MsgBox "Save as " & fName
    End If
    ThisWorkbook.SaveAs fName
    Application.EnableEvents = -1
    Cancel = True
End Sub

 
Я сам - дурнее всякого примера! ...
 
К сожалению не работает. Вообще никак не вызывается макрос.
На листе книги, в модуль которой вставил этот макрос, есть Private Sub Worksheet_Change и скрытые лисы. Может это быть причиной?
 
Вы что ее в модуль листа вставили?
Я сам - дурнее всякого примера! ...
 
нет, в модуль книги. в модуле листа свой макрос отслеживающий изменения ячеек
 
У Вас путь существуюший указан?
Выполните откуда угодно:
Application.EnableEvents = -1
а потом сохраняйте.
Я сам - дурнее всякого примера! ...
 
Кстати заметил не то, что бы косяк - небольшая корявость, лучше так:

Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim fName
    Application.EnableEvents = 0
    fName = Application.GetSaveAsFilename(InitialFileName:="C:\" & Sheets(1).[a1], _
                                          fileFilter:="xls Files (*.xls), *.xls")
    If fName <> False Then
        MsgBox "Save as " & fName
        ThisWorkbook.SaveAs fName
    End If
    Application.EnableEvents = -1
    Cancel = True
End Sub

 
Я сам - дурнее всякого примера! ...
 
не работает. может пример выслать в почту? )
 
Тут работает?
Я сам - дурнее всякого примера! ...
 
всё. теперь понял.
вставлял в в Project\Modules\Module1, а надо было  Project\Objects\Эта книга
спасибо большое
Страницы: 1
Читают тему
Наверх