Страницы: 1
RSS
Как вызвать макрос, выбранный из КомбоБокс на листе?, Нужно добавить несколько макросов в "поле со списком"
 
Добрый день форумчане!
Как обычно, не справившись с задачей самостоятельно, пришел за помощью гуру этого сайта (еще не разу не оставался без помощи :) )
Всегда привязывал макросы к кнопкам, чтобы конечные пользователи могли легко и быстро перестраивать данные внутри листа. Но всегда это было так, один макрос - одна кнопка.
Сейчас есть задача, решение которой мне видится следующим образом: элемент управления формы "поле со списком" в котором 7 позиций для выбора, при выборе каждой из позиций, должен срабатывать разный макрос. Собственно макросы написал, а как их привязать к каждой из 7 строчек в "поле со списком" не знаю.
Это возможно? И если да, то пожалуйста, подскажите как. Поиск юзал, ответ не нашел, но нашел решение для другой задумки, до которой руки еще не дошли.

Заранее благодарю за помощь!  
 
Murlif, переформулируйте и предложите новое название темы, из которого ббудет понятна ЗАДАЧА - модераторы поменяют.
 
Цитата
Юрий М написал:
ЗАДАЧА
Добрый день.
Задача привязать 7 разных макросов к 7 строкам "поля со списком" (элемент управления формы).
 
Проще взять КомбоБокс из Элементов управления, а не из Форм.
См. вариант. 7 было день рисовать - сделал для трёх ))
 
Я бы делал как любое другое ветвление - через if-then или удобнее select case ComboBox1 и там внутри call нужныймакрос
Код
Private Sub ComboBox1_Change()
'    Application.Run ActiveSheet.ComboBox1
    Select Case ActiveSheet.ComboBox1
    Case "Macro1": Call Macro1
    Case "Macro2": Call Macro2
    Case "Macro3": Call Macro3
    End Select
End Sub

В этом случае не обязательно в комбобоксе писать именно название макроса.
Изменено: Hugo - 13.09.2020 14:28:39
 
Цитата
Hugo написал:
Я бы делал как
Спасибо, сделал так. Все сработало :)

Еще попутно возникла проблема. Нужно выстроенный диапазон по желанию пользователя очистить. Заюзал "Selection.ClearContents" но он снес правила, написанные в ячейках. "Clear"/"Value = Empty" - тоже самое. Парадокс в том, что когда нажимаешь Delete и заново строишь данные в этой области, правила сохраняются. В записи макроса кнопка "Delete" записывается, как "ClearContents".
Какой командой можно очистить область и не удалить при этом правила в ячейках? Если кто знает, подскажите пожалуйста.  
 
Murlif, а мой вариант из #4 не работает?
И какое отношение Ваш "попутный" вопрос имеет к ЭТОЙ теме?
 
Цитата
Юрий М написал:
#4 не работает
Я комбобоксами раньше не работал. Вариант от HUGO мне показался легче, посчитал, что с ним быстрее разберусь. Так и вышло, мне удалось его сделать под себя.

Что касается попутного вопроса, то если это оффтоп, то создам новую тему.  
 
А разве у Hugo не КомбоБокс? )) и Код у меня короче - всего одна строка.
 
Цитата
Юрий М написал:
КомбоБокс
Он, и он мне показался проще. У каждого свое восприятия. Видимо подход HUGO и мой больше совпадают.  
Страницы: 1
Наверх