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

Вход

Регистрация

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

 

= Мир MS Excel/Добавление CommandButton_Click при выполнении процедуры - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Добавление CommandButton_Click при выполнении процедуры (Макросы/Sub)
Добавление CommandButton_Click при выполнении процедуры
EvgenyD Дата: Воскресенье, 30.08.2015, 23:10 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте! Год назад AndreTM дал мне пример создания контролов по нажатию кнопки на Userform.
Пробую переработать под свои нужды.
Пытаюсь добавить код обработки события CommandButton_Click через VBComponents.CodeModule в ходе выполнения процедуры.
Код добавляется, но событие нажатия не перехватывает. Помогите разобраться, пожалуйста!
К сообщению приложен файл: frmChooseFiles.xlsm (27.8 Kb)
 
Ответить
СообщениеЗдравствуйте! Год назад AndreTM дал мне пример создания контролов по нажатию кнопки на Userform.
Пробую переработать под свои нужды.
Пытаюсь добавить код обработки события CommandButton_Click через VBComponents.CodeModule в ходе выполнения процедуры.
Код добавляется, но событие нажатия не перехватывает. Помогите разобраться, пожалуйста!

Автор - EvgenyD
Дата добавления - 30.08.2015 в 23:10
nilem Дата: Понедельник, 31.08.2015, 00:51 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
EvgenyD, привет
как-то у вас там мудрено все :). Вот, попробуйте
К сообщению приложен файл: _frmChooseFiles.xlsm (29.5 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеEvgenyD, привет
как-то у вас там мудрено все :). Вот, попробуйте

Автор - nilem
Дата добавления - 31.08.2015 в 00:51
AndreTM Дата: Понедельник, 31.08.2015, 01:56 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Да нет, там не мудрёно... там все было нормально.
Но ТС изменил некоторые элементы интерфейса (удалил/добавил, как я понимаю), а события не подвязал. В чём и суть была - раз динамически управляем элементами формы - то и не забываем их потом удалить. Или поставить дополнительную проверку на их наличие.
В общем, если перерабатываем "под свои нужды" - то и связи событий выстраиваем уже сразу "под новые нужды", а не просто тестируем, произошло ли что-нибудь с интерфейсом...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеДа нет, там не мудрёно... там все было нормально.
Но ТС изменил некоторые элементы интерфейса (удалил/добавил, как я понимаю), а события не подвязал. В чём и суть была - раз динамически управляем элементами формы - то и не забываем их потом удалить. Или поставить дополнительную проверку на их наличие.
В общем, если перерабатываем "под свои нужды" - то и связи событий выстраиваем уже сразу "под новые нужды", а не просто тестируем, произошло ли что-нибудь с интерфейсом...

Автор - AndreTM
Дата добавления - 31.08.2015 в 01:56
EvgenyD Дата: Понедельник, 31.08.2015, 08:49 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
За год изучения VBA так и не подружился с модулями класса (как и многими еще вещами), но понял что без класса динамически создавать элементы не получится, вот и решил все же попробовать разобраться сделав такую форму на основе примера предоставленного AndreTM.
nilem, спасибо за решение. Догадка, что самый простой способ - это перехватить Click в классе были, но ввиду малопонятности для себя, понял что не разберусь. Подскажите, так и не понял переменная для экземпляра класса - почему она должна быть двухмерным массивом?

Форму я сделал заново, чтобы хоть немного разобраться как она работает.
Цитата
а события не подвязал
- я для того тему и создал, чтобы понять как их подвязать. Подскажите, пожалуйста, добавлять CommandButton_Click через VBComponents.CodeModule в ходе выполнения процедуры (как я пытался) совсем неправильно? Т.е. единственным верным решением в такой ситуации - это перехват события в модуле класса?
 
Ответить
СообщениеЗа год изучения VBA так и не подружился с модулями класса (как и многими еще вещами), но понял что без класса динамически создавать элементы не получится, вот и решил все же попробовать разобраться сделав такую форму на основе примера предоставленного AndreTM.
nilem, спасибо за решение. Догадка, что самый простой способ - это перехватить Click в классе были, но ввиду малопонятности для себя, понял что не разберусь. Подскажите, так и не понял переменная для экземпляра класса - почему она должна быть двухмерным массивом?

Форму я сделал заново, чтобы хоть немного разобраться как она работает.
Цитата
а события не подвязал
- я для того тему и создал, чтобы понять как их подвязать. Подскажите, пожалуйста, добавлять CommandButton_Click через VBComponents.CodeModule в ходе выполнения процедуры (как я пытался) совсем неправильно? Т.е. единственным верным решением в такой ситуации - это перехват события в модуле класса?

Автор - EvgenyD
Дата добавления - 31.08.2015 в 08:49
nilem Дата: Понедельник, 31.08.2015, 10:04 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
почему она должна быть двухмерным массивом?

показалось, что так правильнее: раз есть пары контролов (текстбокс и кнопка), то пусть и в массиве они будут парами, - и нам будет проще к ним обращаться, и контролам будет приятно :)
Попробуйте сразу нарисовать на форме столько элементов, сколько понадобится, только часть из них сделать невидимыми (св-во Визибл). А по мере необходимости можно программно установить Visible=True и заодно увеличить высоту формы. Ну как вариант.


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение
почему она должна быть двухмерным массивом?

показалось, что так правильнее: раз есть пары контролов (текстбокс и кнопка), то пусть и в массиве они будут парами, - и нам будет проще к ним обращаться, и контролам будет приятно :)
Попробуйте сразу нарисовать на форме столько элементов, сколько понадобится, только часть из них сделать невидимыми (св-во Визибл). А по мере необходимости можно программно установить Visible=True и заодно увеличить высоту формы. Ну как вариант.

Автор - nilem
Дата добавления - 31.08.2015 в 10:04
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Добавление CommandButton_Click при выполнении процедуры (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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