Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как из макроса подсунуть имя для Save As шаблона? / 6 сообщений из 6, страница 1 из 1
08.06.2011, 11:12
    #37300089
iskatelsql
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из макроса подсунуть имя для Save As шаблона?
создал шаблон отчета, использую его в 2х вариантах

1. когда надо выкинуть отчет на, скажем, 100 экз. - просто в выбранную папку делаю Save As под нужным именем, и все ок

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

мне нужно чтоб "если захотят сохранить" подставлялось нужное имя (вычисляется в макросе) возможно?
...
Рейтинг: 0 / 0
08.06.2011, 20:16
    #37301253
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из макроса подсунуть имя для Save As шаблона?
В модуле, где идет принудительное сохранение. Где ваш вариант1
Код: plaintext
1.
2.
3.
4.
5.
6.
Public VarSave As Integer

Sub Макрос1()
VarSave =  1 
ThisWorkbook.SaveAs ("MyName.xls")
End Sub
в модуле книги
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  If VarSave <>  1  Then
    VarSave =  1 
    ThisWorkbook.SaveAs ("TheirName.xls")
    Cancel = True
  End If
End Sub
...
Рейтинг: 0 / 0
08.06.2011, 20:21
    #37301259
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из макроса подсунуть имя для Save As шаблона?
Увы, оказалось, что такой "некорректный" подход к SaveAs сводит с ума Ексель.
...
Рейтинг: 0 / 0
08.06.2011, 20:52
    #37301300
Cursky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из макроса подсунуть имя для Save As шаблона?
Вот похожая проблема http://www.sql.ru/forum/actualthread.aspx?tid=789538

Код: plaintext
1.
2.
3.
4.
5.
Sub SaveAs()
    Dim strNewName As String
    strNewName = "Ведомость-" & Format(Date, "DDMMYY") & ".xls"
    Application.Dialogs(xlDialogSaveAs).Show strNewName
End Sub
...
Рейтинг: 0 / 0
09.06.2011, 09:49
    #37301854
iskatelsql
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из макроса подсунуть имя для Save As шаблона?
Cursky,

хм, конечно вариант, но будет куча недовольств, и еще всем эти кнопки ставить...

а если немного расширить условия задачи - я выкидываю этот отчет из своей программы, используя Excel как ole сервер. есть ли у экселя какие нибудь события, которые можно внешне перехватить и какнибудь через это место подсунуть имя файла?
...
Рейтинг: 0 / 0
09.06.2011, 13:23
    #37302373
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из макроса подсунуть имя для Save As шаблона?
Скомбинировал из нескольких идей. В модуле:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public VarSave As Integer
Public TimeStart As Date
Sub Макрос1()
'этот макрос запускаем для установки VarSave = 1, т.е. было управляемое сохранение
VarSave =  1 
ThisWorkbook.SaveAs ("MyName.xls")
End Sub
Public Sub ForcedSave()
  dlgAnswer = Application.Dialogs(xlDialogSaveAs).Show("TheirName.xls")
  If Not dlgAnswer Then VarSave =  0 
End Sub

В модуле книги:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  If VarSave <>  1  Then
    VarSave =  1 
    TimeStart = Now + TimeValue("00:00:03") ' через 3 сек
    Application.OnTime TimeStart, Procedure:="ForcedSave", Schedule:=True
    Cancel = True
  End If
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как из макроса подсунуть имя для Save As шаблона? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]