Уважаемые форумчане доброго времени суток! Вновь без Вашей помощи не обойтись…. Есть готовый макрос поиска по первым буквам (за что огромное спасибо nilem) все работает, все отлично. Есть макрос на добавление строк (здесь не обошлось без помощи AndreTM), который так же работает без проблем. Но закрепив их оба за одним Листом (во вложении «График») получил, что при нажатии кнопку «Добавить строку» выскакивает два окна (один за одним) Формы «Поиск работников». Одно для активной ячейки, а второе для ячейке в новой строке. Вопрос. Можно ли как-то при нажатии на кнопку «Добавить строку» отменить появление хотя бы первого окна? Заранее спасибо!
Уважаемые форумчане доброго времени суток! Вновь без Вашей помощи не обойтись…. Есть готовый макрос поиска по первым буквам (за что огромное спасибо nilem) все работает, все отлично. Есть макрос на добавление строк (здесь не обошлось без помощи AndreTM), который так же работает без проблем. Но закрепив их оба за одним Листом (во вложении «График») получил, что при нажатии кнопку «Добавить строку» выскакивает два окна (один за одним) Формы «Поиск работников». Одно для активной ячейки, а второе для ячейке в новой строке. Вопрос. Можно ли как-то при нажатии на кнопку «Добавить строку» отменить появление хотя бы первого окна? Заранее спасибо!ProstaK
А зачем вы повесили форму поиска на событие? Вы считаете, что ваш пользователь, ткнувший мышкой в третий столбец - всегда хочет именно вписать другую фамилию? Причем именно вписать другую, а не, например, найти уже имеющегося в списке работника. Я так думаю, что вряд ли... Для вызова формы поиска просто сделайте ещё одну кнопочку в интерфейсе, не заставляйте Excel судорожно дёргаться при каждом изменении на листе. Ну или хотя бы повесьте ваш макрос/вызов формы на другое событие (даблклик, например). И ещё надо определяться с тем, чтобы ActiveCell попадала в таблицу данных, а не просто в третий столбец.
И правильно располагайте собственные функции и процедуры - например, вы можете хотя бы себе объяснить, зачем вы поместили процедуру добавления строк в модуль книги, а не общий процедурный модуль? И, кстати, процедура добавления строки была написана под конкретную таблицу, а не под "все таблицы разом", это вам просто везёт, что у вас форматы таблиц похожи. :)
А если вы задумали логику "вот я добавляю строку - поэтому надо сразу вызвать форму для подстановки ФИО" - так и в этом случае, зачем вам обрабатывать событие? Форму подбора вы можете вызвать из макроса, добавляющего строку, и, естественно, только в том случае, если строка корректно добавилась (мы вроде уже начали понимать, что вам желательно иметь отдельные макросы добавления/удаления/изменения для каждой отдельной таблицы, по крайней мере, "интерфейсные" макросы?).
Кроме того, перестаньте засовывать всякие "отключить обновление экрана" куда надо и куда не надо. Причем, судя по всему, вы не понимаете, в какой именно момент надо делать это отключение/включение (и для чего)...
А зачем вы повесили форму поиска на событие? Вы считаете, что ваш пользователь, ткнувший мышкой в третий столбец - всегда хочет именно вписать другую фамилию? Причем именно вписать другую, а не, например, найти уже имеющегося в списке работника. Я так думаю, что вряд ли... Для вызова формы поиска просто сделайте ещё одну кнопочку в интерфейсе, не заставляйте Excel судорожно дёргаться при каждом изменении на листе. Ну или хотя бы повесьте ваш макрос/вызов формы на другое событие (даблклик, например). И ещё надо определяться с тем, чтобы ActiveCell попадала в таблицу данных, а не просто в третий столбец.
И правильно располагайте собственные функции и процедуры - например, вы можете хотя бы себе объяснить, зачем вы поместили процедуру добавления строк в модуль книги, а не общий процедурный модуль? И, кстати, процедура добавления строки была написана под конкретную таблицу, а не под "все таблицы разом", это вам просто везёт, что у вас форматы таблиц похожи. :)
А если вы задумали логику "вот я добавляю строку - поэтому надо сразу вызвать форму для подстановки ФИО" - так и в этом случае, зачем вам обрабатывать событие? Форму подбора вы можете вызвать из макроса, добавляющего строку, и, естественно, только в том случае, если строка корректно добавилась (мы вроде уже начали понимать, что вам желательно иметь отдельные макросы добавления/удаления/изменения для каждой отдельной таблицы, по крайней мере, "интерфейсные" макросы?).
Кроме того, перестаньте засовывать всякие "отключить обновление экрана" куда надо и куда не надо. Причем, судя по всему, вы не понимаете, в какой именно момент надо делать это отключение/включение (и для чего)...AndreTM