Страницы: 1
RSS
Передача значения кнопок UserForm в оператор цикла
 
повторите ваше сообщение здесь ещё раз и по возможности приложите небольшой файл-пример
 
Добрый день!

Делаю "Игру" на VBA. Первоначально планировал делать при помощи InputBox.
Пример кода:
Код
Sub Основной()

A = InputBox("что сделать хочешь?")


Do While A <> 0


Select Case A
    Case 1
        MsgBox "Меню 1"
    Case 2
        MsgBox "Меню 2"
    Case 3
        MsgBox "Меню 3"
End Select

A = InputBox("что сделать хочешь?")

Loop

End Sub
Позже решил сделать через форму UserForm. Сделал следующую форму:(пример в загруженных файлах)

Суть вопроса: Подскажите, как можно реализовать нажатие кнопок в UserForm, чтобы они отрабатывали как A = InputBox("что сделать хочешь?")

Возможность сделать 1 кнопка = 1 выбор на всегда отсутствует, тк в будущем смысл кнопок будет меняться при работе. А вся логика работает на цикле While
Изменено: Владислав Сафонов - 01.12.2021 08:58:48
 
Ознакомьтесь с правилами форума. Предложите название темы. Заменят модераторы
 
, за вас сделать юзерформу? или сами уже?
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
написал:
, за вас сделать юзерформу? или сами уже?
Мне помощь нужна не в создании юзер формы. А в примере кода кнопок/userformы
Как я знаю кнопка запускает какую то процедуру...а мне нужно:
1) появляется юзер форма, ожидает выбор пользователя
2) пользователь жмет кнопку 1 или 2 или 3 и в этот момент в код оператора Case делается выбор 1.
3)и так по кругу  в цикле Do While  
 
Название в личке получено. Переименована
 
, не сразу понял о чем вы) Модераторы подсказали...

Выкладываю фаил с UserFormой, при запуске макроса откроется сама форма. При ее закрытие запуститься цикл игры...вот его нужно реализовать как то в VBA без всплывающих окон =)
 
игра не Counter Strike даже
 
Цитата
Владислав Сафонов написал:  цикл игры...вот его нужно реализовать как то в VBA без всплывающих окон
Я Вам в личке писал, какое должно быть название, приводил пример... Там же писал, что обсуждение в теме с предложенным названием - ТОЛЬКО по этому вопросу:
Цитата
Передача значения кнопок UserForm в оператор цикла
Подстраиваться под Вас и каждый раз менять название? Ага...
Изменено: vikttur - 01.12.2021 13:08:52
 
, честно признаюсь, я не вижу разницы... это одно и тоже...
Я конечно чайник, но суть задачи сводится к тому чтобы impubox заменить на кнопки в форме UserForm....все выше сказанное лишь заход к проблеме с разных сторон....=( переименовывать не нужно более=)
 
Цитата
Тимофеевнаписал:
игра не Counter Strike даже
1.6 ?  :D  
Не бойтесь совершенства. Вам его не достичь.
 
Владислав Сафонов, Какие кнопки на форме должны заменить InputBox?
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim,  любые 4 кнопке в блоке из 6 =)

Для примера мне будет двух достаточно)
CommandButton CB1
CommandButton CB2
 
Так?
"Все гениальное просто, а все простое гениально!!!"
 
, , нет =(

окошко новое не должно высвечиваться...то есть то что мы в inputBox должны ввести(первый вариант) в идеале должно вводиться при нажатии кнопки, но цикл должен работать дальше...
То есть ввод в inputBox значения 1, это должно быть кнопка 1,
ввод в inputBox значения 2, это должно быть кнопка 2....
Сделал блок схемку(слево было) справа как хотел бы=) и нужен именно цикл.

В будущем в каждой процедуре будут еще ветвления...
Изменено: Владислав Сафонов - 01.12.2021 14:47:52
 
не совсем понятно это
Цитата
Владислав Сафонов написал:
Сделал блок схемку(слево было) справа как хотел бы=) и нужен именно цикл.
что за цикл, сейчас на форме 2 кнопки при нажатии на которые вызывается процедура Start, ну а далее ничего не менялось.
Тема звучит - "Передача значения в оператор цикла", в процедуре Start не увидел цикла, но значение кнопки в нее передал, циклом ее сами обернете если нужно.
Если разбираться в коде то вызываемая процедура "Основной", как по мне какой то бесконечный цикл, непонятно для чего написанный, выйти из которого можно только с ошибкой
Изменено: Nordheim - 01.12.2021 14:58:13
"Все гениальное просто, а все простое гениально!!!"
 
из основного цикла выйти можно введя 0=)

Do While A <> 0

Select Case A
   Case 1
       MsgBox "Побег"
   Case 2
       MsgBox "бой"
   Case 3
       MsgBox "торг"

End Select

я похоже суть донести не могу=(((( мне нужно избавиться от inputbox, и чтобы вместо него были кнопки userform...но чую я,это  не возможно =(
 
Цитата
Владислав Сафонов написал:
но чую я,это  не возможно =(
Возможно, но тут
Цитата
Владислав Сафонов написал:
я похоже суть донести не могу
вы правы. На своем опыте никогда не использую  inputbox, от слова "совсем"
Изменено: Nordheim - 01.12.2021 15:19:39
"Все гениальное просто, а все простое гениально!!!"
 
Нормально задачу описать!
ЗАБУДЬТЕ о формах, кнопках и циклах. Excel - да впервые слышите такое! Перед Вами - только Ваша задача.

Настроились? А теперь формулируйте название темы. Опишите задачу
 
Цитата
vikttur написал:
Нормально задачу описать!
Это самое сложное, как всегда, особенно когда уже что то есть , но оно не работает как нужно  :D
"Все гениальное просто, а все простое гениально!!!"
Страницы: 1
Наверх