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

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
20.04.2006, 12:37
    #33678944
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
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
20.04.2006, 12:53
    #33679013
Юрик#
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
Попробывал ваш код, увы опять предлагает второй раз сохраниться :(
...
Рейтинг: 0 / 0
20.04.2006, 13:00
    #33679040
Юрик#
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
мой код вообще не реагирует на параметр 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
20.04.2006, 13:45
    #33679224
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
Зачем перехватывать WorkbookBeforeSave? При нажатии на дискетку диалог и так появится.
...
Рейтинг: 0 / 0
20.04.2006, 13:53
    #33679249
Юрик#
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
программа создает некие технические таблицы, пользователям лень вбивать в наименование примерно 20 символов, вот и просят этот прибамбас, да и желательно чтоб у всех каждый отчет назывался одинаково, не то юзвери запутаются...
...
Рейтинг: 0 / 0
20.04.2006, 13:55
    #33679260
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
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
20.04.2006, 14:02
    #33679296
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
Юрик# программа создает некие технические таблицы, пользователям лень вбивать в наименование примерно 20 символов, вот и просят этот прибамбас, да и желательно чтоб у всех каждый отчет назывался одинаково, не то юзвери запутаются...Тогда в WorkbookBeforeSave ставь Cancel=1 и показывай диалог, когда юзер сделает выбор, делай SaveAs
...
Рейтинг: 0 / 0
20.04.2006, 14:07
    #33679322
Юрик#
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
спасибо, учу как могу, сорри еслиб все знал то по форумам не лазил :).
Неужели нет никаких идей?
я тута свою форму уже делаю, с выбором каталоги и всякими наваротами, не хотелось бы так, а то юзеры ворчать будут...
очень надеюсь что появиться умный человек настучит по рукам и обьяснит как надо сделать красиво...
...
Рейтинг: 0 / 0
20.04.2006, 14:11
    #33679349
Юрик#
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
Antonariy Юрик# программа создает некие технические таблицы, пользователям лень вбивать в наименование примерно 20 символов, вот и просят этот прибамбас, да и желательно чтоб у всех каждый отчет назывался одинаково, не то юзвери запутаются...Тогда в WorkbookBeforeSave ставь Cancel=1 и показывай диалог, когда юзер сделает выбор, делай SaveAs

Если не тяжело не могли бы поясник как перехватывать выбор, и выбор чего.
Хотелось бы чтоб после формирования отчета в excele, пользователь нажал бы дискетку, появилась форма save as в которой уже каким либо чудом в поле имя файла появилаось название из моей переменной, затем он нажал бы ОК и все довольны
...
Рейтинг: 0 / 0
20.04.2006, 14:51
    #33679499
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
Код: 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
20.04.2006, 14:56
    #33679511
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
Да, погарячился немного, написал непроверив.

Код: 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
20.04.2006, 14:58
    #33679523
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
Насчет SaveAs это я погорячился.
...
Рейтинг: 0 / 0
20.04.2006, 15:04
    #33679548
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
Для AppE_WorkbookBeforeSave аналогично и без всяких Dim Withevents Workbook1 as Workbook
...
Рейтинг: 0 / 0
21.04.2006, 06:32
    #33681048
Юрик#
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить документ стандартным окном excel
Спасибо всем вопрос снят, мне удалось вчера сделать то что хотел.
юзвери довольны. Ваши варианты работают одинаково отлично, сегодня выправил свой код на один из ваш ( у меня всеравно коряво получилось) теперь и я и юзвери просто счастливы!

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


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