Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 След.
RSS
При событии Workbook_Open() файл ломается и форма авторизации оголяется
 
Всем добрый вечер!
Помогите понять почему происходит такое с моей формой? Я начал делать небольшую форму авторизации: в зависимости от пользователя, что бы были разные права на использование листов. И вот дошёл до момента когда вызываю форму руками - всё работает, а как только вставляю вызов при событии Private Sub Workbook_Open() PokazatFormu End Sub - файл сразу показывает сбой и при повторном открытии сама форма оголяется. Что я не так делаю? В чём загвоздка?
Изменено: Виталий Криворучко - 6 Апр 2018 22:12:49
 
При открытии книги форма есть (строку раскомментировал)
 
Странно. У меня, как только снимаю комментарий сразу вылазет такое:

После чего форма портится.
2.jpg (79.26 КБ)
3.jpg (68.64 КБ)
 
А у меня вообще событие Workbook_Open не срабатывает.
 
После сбоя форма становится вот такой:
4.jpg (56.45 КБ)
 
Может что-то случилось с файлом? Попробуйте форму скопировать в НОВЫЙ файл и загрузить её по тому же событию.
 
Цитата
Юрий М написал:
Попробуйте форму скопировать в НОВЫЙ файл
Я уже один раз переделывал полностью файл. Много раз копировал - всё-равно на этом событии всё ломается.
 
Цитата
Юрий М написал:
А у меня вообще событие Workbook_Open не срабатывает.
Это я про Ваш файл - что-то в нём не так.
 
В чистом файле форма запускается без проблем. Вообще ничего не понимаю....((((
 
Цитата
Юрий М написал: про Ваш файл - что-то в нём не так.
Этот файл не понравился Вашему компьютеру. У Юры тоже- не хочет событие запускать. А вот мой ноут толерантный :)
Допускаю, что файл с внутренней поломкой, поэтому лучше перенести все в новый файл. Модули VBA можно переносить без проблем, а вот с листов лучше брать только данные, без форматирования и прочих украшательств, иначе можно перетянуть проблему в новый файл.

Попутно: цвет на Вашей форме ядовитый. Не стоит сильно увлекаться разукрашками.
 
А вот у меня (у меня! и только у меня!) когда не идет xlsm и ошибки лезут, помогает пересохранить в xlsb....
Почему и в каких точно условиях - не скажу, я не настоящий сварщик... ;)
Кому решение нужно - тот пример и рисует.
 
Хорошо попробую.
 
Цитата
Виталий Криворучко написал: Хорошо попробую.
Неправильно. Вы очень хорошо попробуйте )
 
Проблема в самом файле. Можно увидеть в обозревателе объектов, что у него идет сбой в проекте VBA. Есть два объктка ЭтаКнига(ЭтаКнига1 и ЭтаКнига2) + много модулей листов, не привязанных к реальным листам(можно увидеть по тому, что у них нет имени в скобках).
Если форму экспортировать - файлы вроде в норме, без паталогий.
Поэтому перенос данных(не листов целиком!) в новую книгу с последующим экспортом/импортом формы и модулей должен вылечить проблему.
Т.е. создаете новую книгу. Переименовываете стандартным способом листы так, как проблемной книге. Далее, из проблемной книги по очереди для каждого листа:
выделяете все ячейки с данными -копируете. Переходите на такой же лист новой книги -Специальная вставка. Сначала ширины столбцов, затем формулы, потом форматы.
Изменено: Дмитрий Щербаков - 7 Апр 2018 10:57:28
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий, а я не обратил внимания на дерево! А ведь известный случай.

Ха! Еще подумал - и как это я не заметил "поломанное дерево"?
А не видел, потому что на моем Excel-2010 никаких фантомных модулей нет! Все 7 листов в наличии. Видимо, поэтому и форма у меня нормально запустилась.
Почему? Кто объяснит? Как еще можно видеть невидимое?
 
Спасибо за совет. Обязательно применю.
 
Цитата
vikttur написал:
Почему? Кто объяснит
Потому что не все версии одинаково полезны :) Видимо, 2010 вполне нормально смог открыть и восстановить все ссылки в проекте.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Вот вам! Мой хороший, умный и полезный... :)

Шутки - хорошо, но ведь и на 2010 видел подобное. Сам когда-то не переименовал процедуру и открыл файл с  двумя одинаково названными макросами - получил похожий сбой. Видел фантомы и в присланных книгах.
Возможно, кто-нибудь сможет поделиться информацией по этому вопросу.
 
Цитата
vikttur написал:
А не видел, потому что на моем Excel-2010
У меня в 2010  нет фантомов и файл без проблем работает.
 
Проверил в Excel 2007 (ru). Проблем не замечено.
В Excel 2016 (en) проблемы из-за русских букв во внутренних именах (свойство CodeName) объектов Excel. Конструкции вида
Код
Лист6.Activate
потенциально опасны в и некоторых конфигурациях могут вызывать проблемы. Лучше сразу после создания книги менять внутренние (кодовые) имена листов и имя ЭтаКнига на подходящие латинские.
Владимир
 
Цитата
sokol92 написал:
потенциально опасны в и некоторых конфигурациях могут вызывать проблемы.
Хм, вроде такого замечено небыло. Более того, не понятна первопричина сего, если такое может быть. Может просто элементарные опечатки сходных символов, Лист
с- рус и eng например?
 
Здравствуйте, БМВ! Для начала, файл из #1 просто не будет компилироваться, если кодовая страница Windows по умолчанию не поддерживает кириллицу (например, Win-1252) как раз ввиду конструкций, указанных в #20.
Владимир
 
У меня на 2010 фантомов нет, а форма крашится... если включить вызов в событии. Вручную отрабатывает нормально.
http://prntscr.com/j28n25
Изменено: Hugo - 7 Апр 2018 22:29:53
 
2013: листов-фантомов нет, ЭтаКнига - одна. Событие открытие книги не срабатывает. Форма из модуля запускается нормально.
 
Попробуйте полечить приемом, указанным Владимиром (ZVI). Замените процедуру обработки события на:
Код
Private Sub Workbook_Open()
  Application.OnTime Now, "PokazatFormu"
End Sub
Владимир
 
Цитата
sokol92 написал:
Попробуйте полечить приемом, указанным Владимиром ( ZVI ).
- у меня сработало.
 
Так ведь разговор не о способе лечения )) Ведь у автора проблема именно с этим файлом, а в "чистом" такого не наблюдается.
Выяснить бы причину столь странного поведения: у одних всё срабатывает, а у других не хочет.
 
Цитата
Юрий М написал:
Выяснить бы причину столь странного поведения: у одних всё срабатывает, а у других не хочет.
На мой вгляд, очередной "битый" файл, т.е. файл с нарушенной структурой. Исследовать такие файлы хлопотно: нужно понять, какая именно часть не в порядке и какая последовательность действий привела к катастрофе. На второй вопрос я точно ответить не смогу. По первому вопросу гипотеза: виноват стандартный модуль WBSecurity. Если его удалить и затем вставить новый модуль с тем же именем и текстом, то жизнь налаживается. Но могу и ошибаться.

Кроме этого, очень странно написана обработка события закрытия книги - я бы советовал автору темы обрабатывать вместо этого событие сохранения книги.
Владимир
 
Переделал файл по-новому, по совету Дмитрий Щербаков и sokol92. Но проблема осталась. Стоит мне только в событии Открытие книги разкомментировать PokazatFormu как сразу же после запуска форма ломается и файл становится не рабочим. И что делать???? Ума не приложу.
 
Цитата
Виталий Криворучко написал:
В чистом файле форма запускается без пробле
А это как тогда понимать?
Страницы: 1 2 След.
Читают тему (гостей: 1)