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

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

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

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

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

Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2012, 22:27
Ответы с готовыми решениями:

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

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

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

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

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

Что-то не получается у меня, делаю вот так:
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
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
21.02.2012, 12:43 4
Сохраните ссылку на объект в переменной модуля, потом используйте ее:
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
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 174
21.02.2012, 23:25  [ТС] 5
Можно еще один вопрос?

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

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
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
21.02.2012, 23:38 6
Лучший ответ Сообщение было отмечено как решение

Решение

Попробуйте
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
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 174
22.02.2012, 07:17  [ТС] 7
Ну так, получается , что ButtonPress с параметрами вызвать не получится? Просто у меня есть три кномпки, первая, как бы главная, которая считает поразному в зависимости от того какая кнопка выбрана из двух других, SELL или BUY...
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
22.02.2012, 14:03 8
Цитата Сообщение от Don Vito Посмотреть сообщение
получается , что ButtonPress с параметрами вызвать не получится?
Не получится. Но имя нажатой кнопки возвращает Application.Caller.
1
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 174
22.02.2012, 18:00  [ТС] 9
Что-то через Application.Caller не получается... может делаю неправильно

Вообщем вопрос в следующем, есть три кнопки, как обратиться к двум кнопкам из процедуры которая обрабатывает событие третьей кнопки?
0
22.02.2012, 18:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2012, 18:00
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru