Страницы: 1
RSS
Как назначить на кнопку диалогового окна макрос?
 
Добрый день!

Необходимо вывести диалоговое окно с двумя кнопками.
На каждую кнопку назначить свой макрос (добавить свой код макроса)
Подскажите как это можно сделать, с диалоговыми окнами не приходилось работать.
Спасибо!
 
Гугл дал такое решение
Скрытый текст
 
1. кнопкой кнопкой мыши по кнопке формы
2. View code
готово!

аналогично, по другой, осталось внутри каждой из заготовок написать осмысленный код
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Тут даже форма не нужна - для двух кнопок и MsgBox хватит. Осваивайте: Работа с диалогами
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Я обхожусь без собственной формы и использую штатные
Цитата
mazersw : вывести диалоговое окно с двумя кнопками
Код
Sub t ()
dim i&

i=MsgBox("Диалог с 3мя кнопками (Да, Нет и Отмена).  Отмена «преднажата» по-умолчанию", vbYesNoCancel + vbQuestion + + vbDefaultButton3, "Запрос выбора")
If i=vbcancel then exit sub

   if i=vbyes then
      ' код для выбора "ДА"
   else
      ' код для выбора "НЕТ"
   end if

End Sub
Работа с диалогами
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Круто, спасибо, разбираюсь!
 
если проверяете ответ от MsBox на vbYes, vbNo, vbCancel, тогда лучше переменную i правильно объявлять, а именно
Код
Dim i As VbMsgBoxResult

тогда логично
Код
If i = vbCancel Then Exit Sub
if i = vbYes then
if i = vbNo then

а если i объявляете как Long, тогда уж
Код
    'vbYes = 6
    'vbCancel = 2
    'vbNo = 7
Изменено: New - 16.10.2020 12:03:56
 
Цитата
New: если проверяете ответ от MsBox на vbYes, vbNo, vbCancel, тогда лучше переменную i правильно объявлять
глупости…
vbYes, vbNo и т.д. — не более, чем штатные именованные константы, поэтому логично использовать любую числовую переменную, а тут хватило бы даже i as byte
Цитата
New: если i объявляете как Long, тогда уж
вот и нахрена мне запоминать числовые значения констант, если у них есть удобное имя?… А вот для чего придумали отдельный вид переменных (не проверял) для ответов MsgBox я ума не приложу — по-моему на фиг не надо. К тому же мою переменную можно использовать для ЛЮБЫХ long целых чисел везде в коде, а не только для ответов MsgBox
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх