Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Задваивание формы - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Задваивание формы (Макросы/Sub)
Задваивание формы
ProstaK Дата: Воскресенье, 06.08.2017, 00:15 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Уважаемые форумчане доброго времени суток!
Вновь без Вашей помощи не обойтись….
Есть готовый макрос поиска по первым буквам (за что огромное спасибо nilem) все работает, все отлично.
Есть макрос на добавление строк (здесь не обошлось без помощи AndreTM), который так же работает без проблем.
Но закрепив их оба за одним Листом (во вложении «График») получил, что при нажатии кнопку «Добавить строку» выскакивает два окна (один за одним) Формы «Поиск работников». Одно для активной ячейки, а второе для ячейке в новой строке.
Вопрос. Можно ли как-то при нажатии на кнопку «Добавить строку» отменить появление хотя бы первого окна?
Заранее спасибо!
К сообщению приложен файл: 6172758.xlsb(44Kb)
 
Ответить
СообщениеУважаемые форумчане доброго времени суток!
Вновь без Вашей помощи не обойтись….
Есть готовый макрос поиска по первым буквам (за что огромное спасибо nilem) все работает, все отлично.
Есть макрос на добавление строк (здесь не обошлось без помощи AndreTM), который так же работает без проблем.
Но закрепив их оба за одним Листом (во вложении «График») получил, что при нажатии кнопку «Добавить строку» выскакивает два окна (один за одним) Формы «Поиск работников». Одно для активной ячейки, а второе для ячейке в новой строке.
Вопрос. Можно ли как-то при нажатии на кнопку «Добавить строку» отменить появление хотя бы первого окна?
Заранее спасибо!

Автор - ProstaK
Дата добавления - 06.08.2017 в 00:15
AndreTM Дата: Воскресенье, 06.08.2017, 02:14 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1664
Репутация: 481 ±
Замечаний: 0% ±

2003 & 2010
А зачем вы повесили форму поиска на событие? Вы считаете, что ваш пользователь, ткнувший мышкой в третий столбец - всегда хочет именно вписать другую фамилию? Причем именно вписать другую, а не, например, найти уже имеющегося в списке работника. Я так думаю, что вряд ли...
Для вызова формы поиска просто сделайте ещё одну кнопочку в интерфейсе, не заставляйте Excel судорожно дёргаться при каждом изменении на листе. Ну или хотя бы повесьте ваш макрос/вызов формы на другое событие (даблклик, например). И ещё надо определяться с тем, чтобы ActiveCell попадала в таблицу данных, а не просто в третий столбец.

И правильно располагайте собственные функции и процедуры - например, вы можете хотя бы себе объяснить, зачем вы поместили процедуру добавления строк в модуль книги, а не общий процедурный модуль? И, кстати, процедура добавления строки была написана под конкретную таблицу, а не под "все таблицы разом", это вам просто везёт, что у вас форматы таблиц похожи. :)

А если вы задумали логику "вот я добавляю строку - поэтому надо сразу вызвать форму для подстановки ФИО" - так и в этом случае, зачем вам обрабатывать событие? Форму подбора вы можете вызвать из макроса, добавляющего строку, и, естественно, только в том случае, если строка корректно добавилась (мы вроде уже начали понимать, что вам желательно иметь отдельные макросы добавления/удаления/изменения для каждой отдельной таблицы, по крайней мере, "интерфейсные" макросы?).

Кроме того, перестаньте засовывать всякие "отключить обновление экрана" куда надо и куда не надо. Причем, судя по всему, вы не понимаете, в какой именно момент надо делать это отключение/включение (и для чего)...
К сообщению приложен файл: 10-34775-2.xlsb(45Kb)


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Воскресенье, 06.08.2017, 02:21
 
Ответить
СообщениеА зачем вы повесили форму поиска на событие? Вы считаете, что ваш пользователь, ткнувший мышкой в третий столбец - всегда хочет именно вписать другую фамилию? Причем именно вписать другую, а не, например, найти уже имеющегося в списке работника. Я так думаю, что вряд ли...
Для вызова формы поиска просто сделайте ещё одну кнопочку в интерфейсе, не заставляйте Excel судорожно дёргаться при каждом изменении на листе. Ну или хотя бы повесьте ваш макрос/вызов формы на другое событие (даблклик, например). И ещё надо определяться с тем, чтобы ActiveCell попадала в таблицу данных, а не просто в третий столбец.

И правильно располагайте собственные функции и процедуры - например, вы можете хотя бы себе объяснить, зачем вы поместили процедуру добавления строк в модуль книги, а не общий процедурный модуль? И, кстати, процедура добавления строки была написана под конкретную таблицу, а не под "все таблицы разом", это вам просто везёт, что у вас форматы таблиц похожи. :)

А если вы задумали логику "вот я добавляю строку - поэтому надо сразу вызвать форму для подстановки ФИО" - так и в этом случае, зачем вам обрабатывать событие? Форму подбора вы можете вызвать из макроса, добавляющего строку, и, естественно, только в том случае, если строка корректно добавилась (мы вроде уже начали понимать, что вам желательно иметь отдельные макросы добавления/удаления/изменения для каждой отдельной таблицы, по крайней мере, "интерфейсные" макросы?).

Кроме того, перестаньте засовывать всякие "отключить обновление экрана" куда надо и куда не надо. Причем, судя по всему, вы не понимаете, в какой именно момент надо делать это отключение/включение (и для чего)...

Автор - AndreTM
Дата добавления - 06.08.2017 в 02:14
ProstaK Дата: Воскресенье, 06.08.2017, 13:08 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
AndreTM, спасибо огромное, все работает!
 
Ответить
СообщениеAndreTM, спасибо огромное, все работает!

Автор - ProstaK
Дата добавления - 06.08.2017 в 13:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Задваивание формы (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!