Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
 Аватар для Don Vito
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 174

Как можно проверить, выбрал ли пользователь OptionButon

20.02.2012, 22:27. Показов 3780. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!

Скажите, пожалуйста, как можно проверить выбрал ли пользователь OptionButon 1?

Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.02.2012, 22:27
Ответы с готовыми решениями:

Как получить значение, которое выбрал пользователь в комбобоксе?
У меня есть форма, на ней несколько combobox' ов, в каждом 10 вариантов ответа, из которых пользователь должен выбрать один. Как получить...

Выполнить макрос если пользователь выбрал один из элементов combobox'а
Вот файл При загрузке страницы выполняется макрос добавления в combobox значений как нужно описать макрос что бы он реагировал на...

Как проверить какую radio выбрал пользователь до отправки на сервер?
Добрый день, уважаемые Гуру. Подскажите пожалуйста: как можно проверить поля формы до отправки на сервер, и на основе этих данных...

8
здесь больше нет...
3376 / 1674 / 184
Регистрация: 03.02.2010
Сообщений: 1,219
20.02.2012, 23:22
Visual Basic
1
2
if OptionButon1.value then _
msgbox "выбрал ли пользователь OptionButon 1? ДА!"
1
 Аватар для Don Vito
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 174
21.02.2012, 12:36  [ТС]
Бодрый день!

Что-то не получается у меня, делаю вот так:
Visual Basic
1
2
3
4
5
If OptionButon1.Value Then
 
    MsgBox ("Âûáåðåòè Âàøó ñòîðîíó ïî ñäåëêå!")
 
End If


Кнопка объявлена так:

Visual Basic
1
2
3
4
    Range("A3").Select
    New_List.OptionButtons.Add(155, 5, 47.25, 17.25).Select
    New_List.Shapes("Option Button 1").Select
    Selection.Characters.Text = "BUY"
Добавлено через 17 минут
VBA выдает ошибку obj required и ссылается на if...
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
21.02.2012, 12:43
Сохраните ссылку на объект в переменной модуля, потом используйте ее:
Visual Basic
1
2
3
4
5
6
7
8
Dim myButton 'переменная модуля
 
'процедура, в которой создается кнопка
Set myButton = New_List.OptionButtons.Add(155, 5, 47.25, 17.25)
myButton.Characters.Text = "BUY"
 
'процедура, в которой проверяется кнопка
If myButton = 1 Then MsgBox ("Выберети Вашу сторону по сделке!")
1
 Аватар для Don Vito
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 174
21.02.2012, 23:25  [ТС]
Можно еще один вопрос?

Теперь мне эти переменные нужно передать в процедуру, которая обрабатывает событие - нажтие кнопки. У меня что-то опять не получается, делаю вот так:

Visual Basic
1
2
3
4
5
6
    ActiveSheet.Buttons.Add(307, 48.75, 48.75, 18.75).Select
    Selection.OnAction = Button(myButton1, myButton2)
    ActiveSheet.Shapes("Button 3").Select
    Selection.Characters.Text = "Count"
    
    ActiveSheet.Range("A1").Select
Добавлено через 4 часа 3 минуты
У кого-нибудь есть идеи?

Заранее спасибо!

Добавлено через 2 часа 50 минут
Привет, в чем смысл, начал писать простенький калькулятор. Пока это только набросок. Пользователь вводит данные, нажимает на кнопку посчитать, в случае если он не ввел данные или не отметил свою сторону по сделке, то система на него ругается. Файл не выкладывается, вот код! Спасибо!

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Dim New_List AS Excel.Worksheet
Dim myButton1
Dim myButton2
 
 
Sub main()
 
SET New_List = Worksheets.ADD
 
New_List.Name = "Futers"
 
 
    Range("A3").SELECT
    SET myButton1 = New_List.OptionButtons.ADD(155, 5, 47.25, 17.25)
    New_List.Shapes("Option Button 1").SELECT
    myButton1.Characters.TEXT = "BUY"
    
    Range("A5").SELECT
    SET myButton2 = New_List.OptionButtons.ADD(155, 25, 47.25, 17.25)
    New_List.Shapes("Option Button 2").SELECT
    myButton2.Characters.TEXT = "SELL"
 
 
New_List.Cells.Interior.ColorIndex = 15
 
 
 
New_List.Range("B2").VALUE = "At Futers Price "
New_List.Range("B2").HorizontalAlignment = xlRight
 
Columns("B:B").EntireColumn.AutoFit
 
New_List.Range("C2").Interior.ColorIndex = 0
New_List.Range("C2").BorderAround Weight:=xlMedium
 
New_List.Range("E2").VALUE = "New Futers Price "
New_List.Range("E2").HorizontalAlignment = xlRight
New_List.Range("F2").Interior.ColorIndex = 0
New_List.Range("F2").BorderAround Weight:=xlMedium
 
Columns("E:E").EntireColumn.AutoFit
 
New_List.Range("B3").VALUE = "Quantity "
New_List.Range("B3").HorizontalAlignment = xlRight
New_List.Range("C3").Interior.ColorIndex = 0
New_List.Range("C3").BorderAround Weight:=xlMedium
 
New_List.Range("B4").VALUE = "Initial Margin "
New_List.Range("B4").HorizontalAlignment = xlRight
New_List.Range("C4").Interior.ColorIndex = 0
New_List.Range("C4").BorderAround Weight:=xlMedium
 
New_List.Range("D4").Interior.ColorIndex = 0
New_List.Range("D4").BorderAround Weight:=xlMedium
 
New_List.Range("B5").VALUE = " Maintenance Margin "
New_List.Range("B5").HorizontalAlignment = xlRight
New_List.Range("C5").Interior.ColorIndex = 0
New_List.Range("C5").BorderAround Weight:=xlMedium
 
New_List.Range("D5").Interior.ColorIndex = 0
New_List.Range("D5").BorderAround Weight:=xlMedium
 
New_List.Range("E6").VALUE = " Variation Margin "
New_List.Range("E6").HorizontalAlignment = xlRight
New_List.Range("F6").Interior.ColorIndex = 0
New_List.Range("F6").BorderAround Weight:=xlMedium
 
Columns("C:C").EntireColumn.AutoFit
 
 
    ActiveSheet.Buttons.ADD(307, 48.75, 48.75, 18.75).SELECT
    Selection.OnAction = Button(myButton1, myButton2)
    ActiveSheet.Shapes("Button 3").SELECT
    Selection.Characters.TEXT = "Count"
    
    ActiveSheet.Range("A1").SELECT
 
END Sub
 
Sub Button(myButton1, myButton2)
 
IF (ISNUMERIC(ActiveSheet.Range("C2")) = FALSE) Or (ActiveSheet.Range("C2").VALUE <= 0) THEN
 
 
    Do WHILE (ISNUMERIC(ActiveSheet.Range("C2")) = FALSE) Or (ActiveSheet.Range("C2").VALUE <= 0)
    
        ActiveSheet.Range("C2").VALUE = InputBox("Значение цены не может быть буквой, быть меньше или равной нулю, введите цену")
        
    Loop
    
END IF
    
IF (ISNUMERIC(ActiveSheet.Range("C3")) = FALSE) Or (ActiveSheet.Range("C3").VALUE <= 0) THEN
 
    Do WHILE (ISNUMERIC(ActiveSheet.Range("C3")) = FALSE) Or (ActiveSheet.Range("C2").VALUE <= 0)
    
        ActiveSheet.Range("C3").VALUE = InputBox("Значение количества контрактов не может быть буквой или быть отрицательным, введите цифру")
        
    Loop
    
END IF
    
IF (ISNUMERIC(ActiveSheet.Range("C4")) = FALSE) Or (ActiveSheet.Range("C4").VALUE > 1) Or (ActiveSheet.Range("C4").VALUE <= 0) THEN
 
 
    Do WHILE (ISNUMERIC(ActiveSheet.Range("C4")) = FALSE) Or (ActiveSheet.Range("C4") > 1) Or (ActiveSheet.Range("C4").VALUE <= 0)
    
        ActiveSheet.Range("C4").VALUE = InputBox("Значение маржи не может быть буквой или быть больше 1, введите правильное значение")
        
    Loop
    
END IF
    
IF (ISNUMERIC(ActiveSheet.Range("C5")) = FALSE) Or (ActiveSheet.Range("C5").VALUE > ActiveSheet.Range("C4").VALUE) Or (ActiveSheet.Range("C5").VALUE <= 0) THEN
 
    
    Do WHILE (ISNUMERIC(ActiveSheet.Range("C5")) = FALSE) Or (ActiveSheet.Range("C5") > ActiveSheet.Range("C4")) Or (ActiveSheet.Range("C5").VALUE <= 0)
    
        ActiveSheet.Range("C5").VALUE = InputBox("Значение гарантийной маржи не может быть буквой, или быть больше первоначальной маржи")
        
    Loop
 
END IF
 
 
IF (myButton1 <> 1) Or (myButton2 <> 1) THEN
 
    MsgBox ("Кнопка не выбрана")
 
END IF
 
 
END Sub
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
21.02.2012, 23:38
Лучший ответ Сообщение было отмечено как решение

Решение

Попробуйте
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub CreateButtons()
With ActiveSheet.Buttons.Add(155, 5, 47.25, 17.25)  'создаем кнопку
    .Characters.Text = "BUY"
    .OnAction = "ButtonPress"                       'назначаем процедуру-обработчик
    With .Duplicate                                 'создаем копию
        .ShapeRange.IncrementTop 40                 'сдвигаем вниз
        .Characters.Text = "SELL"
    End With
End With
End Sub
 
Sub ButtonPress()                                   'процедура-обработчик
Dim btn
Set btn = ActiveSheet.Shapes(Application.Caller)    'получаем объект по имени
MsgBox "Нажата кнопка " & btn.TextFrame.Characters.Text
End Sub
3
 Аватар для Don Vito
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 174
22.02.2012, 07:17  [ТС]
Ну так, получается , что ButtonPress с параметрами вызвать не получится? Просто у меня есть три кномпки, первая, как бы главная, которая считает поразному в зависимости от того какая кнопка выбрана из двух других, SELL или BUY...
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
22.02.2012, 14:03
Цитата Сообщение от Don Vito Посмотреть сообщение
получается , что ButtonPress с параметрами вызвать не получится?
Не получится. Но имя нажатой кнопки возвращает Application.Caller.
1
 Аватар для Don Vito
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 174
22.02.2012, 18:00  [ТС]
Что-то через Application.Caller не получается... может делаю неправильно

Вообщем вопрос в следующем, есть три кнопки, как обратиться к двум кнопкам из процедуры которая обрабатывает событие третьей кнопки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.02.2012, 18:00
Помогаю со студенческими работами здесь

Как узнать что выбрал пользователь в AutoCompleteTextView
Доброго времени суток. Как узнать какую подсказку выбрал пользователь из AutoCompleteTextView ? И как сделать чтоб например если выбрал...

Как отследить какой именно ComboBox выбрал пользователь?
В лабораторной работе есть 7 comboBox-ов, пользователь может выбирать значение начиная с любого, как отследить какой именно comboBox выбрал...

Как определить, что пользователь ничего не выбрал в OpenFileDialog
Открываю диалог для загрузки фото, все работает и загружает, но есть одна проблема. Если не выбрать изображение, а просто закрыть диалог то...

List, как удалить из коллекции значение что выбрал пользователь?
Дорогие мои товарищи, поняв что от массивов толку мало решил перейти в коллекцию List, возник вопрос: 1. Известно три значение 2. Мы...

Как определить какой пункт выбрал пользователь из контекстного меню?
Контекстное меню создается следующим кодом: IContextMenu pContextMenu ... // Создаём меню HMENU hPopupMenu =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru