Страницы: 1 2 След.
RSS
VBA. Переход режима отображения Userform в vbModeless
 
Здравствуйте. Всех с наступающими праздниками!  
Вопрос: При загрузке книги происходит запуск Userform (userform1.show). При работе с формой открываются другие книги, подгружаются данные из них, потом они закрываются. Userform не закрывается. Через некоторое время Userform оказывается в режиме vbModeless, т.е. становятся доступными для редактирования листы. Возможно ли от этого избавиться? Или при загрузке других книг выгружать и загружать форму заново?  
Спасибо.
 
Непослушная у Вас форма, сама модальность меняет... Или все же не сама?
 
Именно сама :) Загружается только один раз при активации книги, и висит до окончания момента работы с книгой.
 
Привет! Никогда с таким не сталкивался...
 
а точно в одном экземпляре приложения работаете?
Живи и дай жить..
 
Экземпляр приложения один, это точно...
 
А форму запускаете так UserForm1.Show vbModal или так UserForm1.Show ?
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Форму запускаю Userform1.show  
А есть разница между Userform1.show и Userform1.show.vbModal?
 
По идее, если в настройках форму стоит по умолчанию "модальный режим", то vbModal не обязательно. Но все равно попробуйте.  
 
А что Вы подразумеваете под  
>"При работе с формой открываются другие книги, подгружаются данные из них, потом они закрываются"?  
 
Какие манипуляции Вы проделываете с книгами? По возможности приложите пример в файле.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Еще раз здравствуйте.  
Вот небольшой примерчик.  
После загрузки формы выбираю "Подгрузить данные" - потом либо любой файл, либо отмена, - форма переходит в режим vbModeless  
Хотелось бы уточнить в чем дело.
 
Дмитрий, подскажите, пожалуйста, в чем может быть тогда проблема?  
Excel 2010
 
Попыталась в 2003-м (portable), ситуация такая-же, переходит в модальный.  
Получается, в настройках дело?  
(на разных компьютерах происходит одно и то же).
 
У меня на 2003 переходит в модальный.
 
Неправильно выразился - форма дает возможность работать с листом.
 
{quote}{login=The_Prist}{date=10.12.2011 07:49}{thema=}{post}Не подтверждаю. И подгрузил, и Отмена нажал - результат один - форма остается в модальном режиме и не дает работать с листом книги напрямую.{/post}{/quote}А у меня - как у Дианы - после нажатия на кнопочку могу работать с листом. Прогонял пошагово - смена режима происходит после выполнения фрагмента FilesToOpen = ...
 
Забыл написать - проверялось на 2003.
 
2007 - аналогично.
 
Я так понимаю, что файловый диалог переводит форму в немодальный режим. Попробуйте так (код в модуле формы):  
 
Private Path As Variant  
 
Private Sub CommandButton1_Click()  
Dim r1 As Range, r2 As Range  
Me.Hide  
Path = Application.GetOpenFilename("Excel Files (*.xls),*.xls", , "Выберите файл базы", , False)  
Me.Show vbModal  
End Sub  
 
Private Sub UserForm_Activate()  
If VarType(Path) = vbString Then  
   With Workbooks.Open(Path)  
       ThisWorkbook.Sheets("Лист2").Range("A1:A5000").Value = .ActiveSheet.Range("A1:A5000").Value  
       ThisWorkbook.Sheets("Лист2").Visible = 2  
       .Close False  
   End With  
End If  
Path = Empty  
End Sub  
 
Private Sub UserForm_Terminate(): Path = Empty: End Sub
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
{quote}{login=The_Prist}{date=10.12.2011 08:28}{thema=}{post} проверьте, пожалуйста.{/post}{/quote}Проверил - проблемы нет: лист недоступен. Диана, с Вас чекушка.
 
Всем привет)  
Дмитрий, а в чем догадка?)
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
{quote}{login=The_Prist}{date=10.12.2011 08:38}{thema=}{post}Не затруднит проверить еще одну догадку?{/post}{/quote}Проверил - результат отрицательный: лист доступен.
 
в том, что код должен быть в модуле?)
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Дима, первый вариант нормально, во втором работа с листом возможна.
 
Почему при активной форме она переводится в модальный, а при скрытой (форма ведь не выгружена) нет?  
Вернее, с переводом в модальный понятно - как у двух книг с включенными и отключенными итерациями. Или я ошибаюсь?  
Почему такое не происходит во втором случае?
 
Дмитрий! Спасибо огромнейшее Вам и всем-всем за техническую помощь. Действительно, теперь заработало :)
 
Добрый день!  
Применила Me.Show: Exit sub к своей книге, получаю ошибку.  
В чем теоретически может быть проблема, хоть с чего начать ее искать?  
Спасибо :)
 
Лучще всего с файла Excel, а не с картинки.
 
Здравствуйте.  
Дмитрий, спасибо, действительно, дело было именно в этом.  
Извиняюсь за нескромность, а насколько проблематично сделать модальным окно выбора файлов? :)  
Спасибо.
 
В свойствах (Properties) ShowModal.
 
И где же найти эти свойства для указанного окна?
Страницы: 1 2 След.
Читают тему
Наверх