Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2010, 15:03   #1
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию Закрыть сохраненную книгу

Здравствуйте.
По условию идет сохранение книги (вторая строка кода)
После сообщения идет открытие файла и открытие формы3(пятая строка кода)
А сохраненная книга должна закрыться. Но она не закрывается из за кода открытие формы : UserForm3.Show
Как это исправить?
Код:
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Rep_Documents & "\V ГСМ " & Sheets("Отчет").Range("R1") & "\" & Sheets("Отчет").Range("N1") & ".xls", 1, ConflictResolution:=xlLocalSessionChanges
Unload Me
MsgBox "  Данные сохранены в папке  V ГСМ " & Sheets("Отчет").Range("R1") & " имя файла " & Sheets("Отчет").Range("N1"), 64, "Сохранение данных"
Workbooks.Open Filename:="C:\Program Files\IL vgsm\V ГСМ\V_ГСМ.xls": UserForm3.Show
ThisWorkbook.Close (False)
Application.DisplayAlerts = True
segail вне форума Ответить с цитированием
Старый 25.03.2010, 15:49   #2
GanJa
 
Регистрация: 11.03.2010
Сообщений: 9
По умолчанию

по моему автоматически становится активна сохраненная книга. надо чтоб открылась книга исходная книга а потом в ней форма...
GanJa вне форума Ответить с цитированием
Старый 25.03.2010, 16:12   #3
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Цитата:
Сообщение от GanJa Посмотреть сообщение
надо чтоб открылась книга исходная книга а потом в ней форма...
Так и все происходит если нет кода : UserForm3.Show Сохраненная книга закрывается, и открывается исходная книга. А вот как открыть форму3, в исходной книги?
segail вне форума Ответить с цитированием
Старый 25.03.2010, 17:17   #4
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Сформулирую по другому.
Как открыть форму UserForm3 файла V_ГСМ.xls, после открытия файла V_ГСМ.xls
segail вне форума Ответить с цитированием
Старый 25.03.2010, 17:34   #5
analyst
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 32
По умолчанию

Цитата:
Сообщение от segail Посмотреть сообщение
Сформулирую по другому.
Как открыть форму UserForm3 файла V_ГСМ.xls, после открытия файла V_ГСМ.xls
А userform1.show не работает?
analyst вне форума Ответить с цитированием
Старый 26.03.2010, 07:02   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Вместо
Код:
UserForm3.Show
используйте
Код:
UserForm3.Show 0
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 27.03.2010, 10:37   #7
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Вместо
Код:
UserForm3.Show
используйте
Код:
UserForm3.Show 0
В этом случае форма мелькнет и закроется вмести с книгой.



V_ГСМ.xls Это уже другой файл, а UserForm3.Show и ThisWorkbook.Close выполняются для файла "V ГСМ " & Sheets("Отчет").Range("R1") & "\" & Sheets("Отчет").Range("N1") & ".xls"
segail вне форума Ответить с цитированием
Старый 30.03.2010, 07:55   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Т.е. Вы хотите открыть форму, затем закрыть файл, в котором находится эта форма, и при этом, чтобы форма осталась???
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 30.03.2010, 23:31   #9
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Т.е. Вы хотите открыть форму, затем закрыть файл, в котором находится эта форма, и при этом, чтобы форма осталась???
Проблема решается только в одном случае если отобразить форму не модально.
Код модуля открываемого файла:
Код:
Public Sub UserForm_Show()
UserForm3.Show vbModeless
End Sub
Код другого файла, который открывает файл и форму данного файла:
Код:
Private Sub CommandButton3_Click()
...
Workbooks.Open Filename:="C:\Program Files\IL vgsm\V ГСМ\V_ГСМ.xls

Application.Run "V_ГСМ.xls!UserForm_Show" 
...
End Sub
Вопрос теперь в другом. Можно ли при открытие формы, немодальном режиме, перевести ее в модальную.
segail вне форума Ответить с цитированием
Старый 31.03.2010, 04:58   #10
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

UserForm3.Show vbModeless - это то же самое, что я и предлагал (UserForm3.Show 0), но я считал, что сама форма находится в другом файле.

1. При открытии формы в модальном режиме, все дальнейшие дальнейшие действия макроса будут блокированы до тех пор, пока форма не будет выгружена, либо скрыта.
2. При открытии формы в немодальном режиме, работа макроса будет продолжена, но при закрытии файла, содержащего эту форму, она будет выгружена.
3. Возможный варианты:
а) закрывать файл, содержащий форму, только после того, как пользователь закончит работу с формой.
б) переместить форму (и программный код формы) в книгу, из которой подразумевается работать с формой.
в) создать надстройку с требуемой формой и вызывать ее оттуда.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
закрыть компонент StartMis Общие вопросы Delphi 2 25.12.2009 21:47
Закрыть Form2 Casper-SC Общие вопросы .NET 9 25.12.2009 20:36
Закрыть открыть книгу segail Microsoft Office Excel 14 07.10.2009 18:22
Закрыть папку Kreadlling Общие вопросы C/C++ 1 08.09.2009 18:24
закрыть программу Var17 Общие вопросы Delphi 1 20.12.2007 10:06