Proponuję użyć w module formularza zmiennej publiczniej, a nastepnie przy kliknięciu OptionButton'a przypisywać jej odpowiednią wartość, pobieraną z opisu klikniętego przycisku. Przykładowy kod formularza:
Public wartosc As Double
Private Sub OptionButton1_Click()
UstawWartosc
End Sub
Private Sub OptionButton2_Click()
UstawWartosc
End Sub
Private Sub OptionButton3_Click()
UstawWartosc
End Sub
Private Sub UstawWartosc()
wartosc = CDbl(Frame1.ActiveControl.Caption)
End Sub
Aby zmienną można było wykorzystać w makrze, należy przypisać odpowiedni kod do przycisków w module formularza (oczywiście, nazwy przycisków, jak i nazwy formantów z poprzedniego przykładu musisz sobie dostosować do własnego formularza):
Private Sub cmdBtnCancel_Click()
wartosc = 0
Me.Hide
End Sub
Private Sub cmdBtnOK_Click()
Me.Hide
End Sub
Przykładowe makro wyświetlające formularz i pobierające wybraną przez użytkownika wartość może wyglądać następująco:
Sub test()
Dim wart As Double
UserForm1.Show
wart = UserForm1.wartosc
Unload UserForm1
If wart > 0 Then
MsgBox "Wartość jest równa " & wart
Else
MsgBox "Anulowano"
End If
End Sub
Pozdrawiam |