powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сохранить документ стандартным окном excel
15 сообщений из 15, страница 1 из 1
Сохранить документ стандартным окном excel
    #33678786
Юрик#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здраствуйте!
Плиз нужно срочно!Сегодня сдаю прогу!

C помощью vb формирую отчет в Excel, как этот гребхххх отет сохранить стандартным exel-евским диалогом(ну типа save as в панеле и там же дискетка) но чтоб в поле имя файла можно было указать название отчета?

Я пытаюсь перхватывать событие сохранения документа:

Private Sub AppE_WorkbookBeforeSave(ByVal Wb As Excel.Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)
'MsgBox ("RECORD")
AppE.Dialogs(xlDialogSaveWorkbook).Show "New report" & ".xls"
End Sub

все прекрасно, появляется окно с тем именем которое надо, но тока после сохранения вылетает второе окно которое предлагает опять сохранить этот файл, почему вылетает понятно, но не знаю как избавиться от него...
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33678944
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BeforeSave EventSaveAsUi - True if the Save As dialog box will be displayed.
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub AppE_WorkbookBeforeSave( _
  ByVal Wb As Workbook, _
  ByVal SaveAsUi As Boolean, _
  ByVal Cancel As Boolean)
    Application.Dialogs(xlDialogSaveWorkbook).Show "New report" & ".xls"
    SaveAsUi = False
End Sub
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679013
Юрик#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробывал ваш код, увы опять предлагает второй раз сохраниться :(
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679040
Юрик#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мой код вообще не реагирует на параметр SaveAsUI

Private Sub AppE_WorkbookBeforeSave(ByVal Wb As Excel.Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)
SaveAsUI = False
end sub
как я понимаю этот код не должен вообще выводить диалоговое окно, но оно появляется.
если в коде поставить Cancel=true, то вообще никакое окно для сохранения
файла не появляется :(
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679224
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем перехватывать WorkbookBeforeSave? При нажатии на дискетку диалог и так появится.
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679249
Юрик#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
программа создает некие технические таблицы, пользователям лень вбивать в наименование примерно 20 символов, вот и просят этот прибамбас, да и желательно чтоб у всех каждый отчет назывался одинаково, не то юзвери запутаются...
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679260
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AshtonSaveAsUi - True if the Save As dialog box will be displayed.
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub AppE_WorkbookBeforeSave( _
  ByVal Wb As Workbook, _
  ByVal SaveAsUi As Boolean, _
  ByVal Cancel As Boolean)
    Application.Dialogs(xlDialogSaveWorkbook).Show "New report" & ".xls"
    SaveAsUi = False
End Sub
SaveAsUi = True если диалог будет показан.
Юрик, учи олбанский, и оба с Аштоном - VB. ByVal SaveAsUI означает, что передано значение (by value), а не ссылка на переменную, поэтому SaveAsUi = False имеет смысл только внутри обработчика события, вне его SaveAsUi останется с тем же значением, с которым пришло в обработчик.
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679296
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрик# программа создает некие технические таблицы, пользователям лень вбивать в наименование примерно 20 символов, вот и просят этот прибамбас, да и желательно чтоб у всех каждый отчет назывался одинаково, не то юзвери запутаются...Тогда в WorkbookBeforeSave ставь Cancel=1 и показывай диалог, когда юзер сделает выбор, делай SaveAs
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679322
Юрик#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, учу как могу, сорри еслиб все знал то по форумам не лазил :).
Неужели нет никаких идей?
я тута свою форму уже делаю, с выбором каталоги и всякими наваротами, не хотелось бы так, а то юзеры ворчать будут...
очень надеюсь что появиться умный человек настучит по рукам и обьяснит как надо сделать красиво...
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679349
Юрик#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy Юрик# программа создает некие технические таблицы, пользователям лень вбивать в наименование примерно 20 символов, вот и просят этот прибамбас, да и желательно чтоб у всех каждый отчет назывался одинаково, не то юзвери запутаются...Тогда в WorkbookBeforeSave ставь Cancel=1 и показывай диалог, когда юзер сделает выбор, делай SaveAs

Если не тяжело не могли бы поясник как перехватывать выбор, и выбор чего.
Хотелось бы чтоб после формирования отчета в excele, пользователь нажал бы дискетку, появилась форма save as в которой уже каким либо чудом в поле имя файла появилаось название из моей переменной, затем он нажал бы ОК и все довольны
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679499
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim toCancel As Boolean
Dim Withevents Workbook1 as Workbook

Sub CreateReport()
    Set xls = New Excel.Application
    Set Workbook1 = xls.Add
    'создание отчета ......
    xls.Visible = true
End Sub
 
Private Sub Workbook1_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Not toCancel Then
        toCancel = True
        Application.Dialogs(xlDialogSaveWorkbook).Show "New report" & ".xls"
        Cancel = True
    End If
End Sub
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679511
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, погарячился немного, написал непроверив.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub AppE_WorkbookBeforeSave( _
  ByVal Wb As Excel.Workbook, _
  ByVal SaveAsUI As Boolean, _
  Cancel As Boolean)
    Dim varFileName As Variant
    
    Cancel = True

    With AppE
        .EnableEvents = False
        varFileName = .GetSaveAsFilename _
          ("New report" & ".xls", fileFilter:="Excel Files (*.xls),*.xls")
        If varFileName <> False Then
            Wb.SaveAs varFileName
        End If
        .EnableEvents = True
    End With
End Sub

2 Antonariy раз такой умный, написал бы как правильно.
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679523
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет SaveAs это я погорячился.
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33679548
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для AppE_WorkbookBeforeSave аналогично и без всяких Dim Withevents Workbook1 as Workbook
...
Рейтинг: 0 / 0
Сохранить документ стандартным окном excel
    #33681048
Юрик#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем вопрос снят, мне удалось вчера сделать то что хотел.
юзвери довольны. Ваши варианты работают одинаково отлично, сегодня выправил свой код на один из ваш ( у меня всеравно коряво получилось) теперь и я и юзвери просто счастливы!

Господа Antonariy и Ashton будете в Сургуте с меня пиво и закусон! :-)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сохранить документ стандартным окном excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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