Controls in Optionsgruppe abfragen
16.11.2023 17:24:03
Peer
Ich habe für mein Projekt eine Lösung für mein Problem gesucht und bin im Archiv auf ein Beispiel von daniel gestoßen, dass ich für mich nutzen wollte und entsprechend angepasst habe.
Was habe ich vor...
Ich möchte in einer Userform alle Radiobutton einer Gruppe "optGrp_Verwendung" abfragen, ob mindestens eins ausgewählt ist.
Ich habe zusätzlich in der Userform zwei CommandButton "Übernehmen" und "Schließen".
Jetzt soll jeweils die Optionsgruppe abgefragt werden, ob mindestens ein Radiobutton ausgewählt wurde. Wenn ja, soll bei Klick auf "Übernehmen" die Einträge in die Zellen eingetragen werden, wenn keine Option ausgewählt ist, dann Meldung anzeigen und zurück zur Userform um die Eingabe zu korrigieren.
Analog für den CommandButton "Schließen". Nur soll hier die Einträge übermittelt werden und die Userform geschlossen werden, wenn mindestens eine Option gewählt wurde. Wenn keine Option gewählt wurde, eine Meldung und Userform nicht schließen, sondern zur Eingabe zurückkehren.
Hier ist mein aktueller Code für den "Schließen"-Button...
Private Sub btn_Refresh_Click()
Dim crt As control, c As Boolean
'Abfrage, ob vor dem Übermitteln eine Verwendung ausgewählt wurde
For Each crt In frm_Tag.Controls
If TypeName(crt) = "OptionButton" Then
If crt.GroupName = "optGrp_Verwendung" Then
If crt.Value = False Then
c = False
MsgBox "Daten fehlen" & vbNewLine & c
Exit Sub
ElseIf crt.Value = True Then
c = True
MsgBox "Alles bestens" & vbNewLine & c
Call btn_OK_Click
Unload Me
End If
End If
End If
Next
'Call btn_OK_Click
' Unload Me
End Sub
Derzeit kommt die Meldung "Daten fehlen" und die Userform bleibt geöffnet, wenn nichts ausgewählt ist. Soweit ist es erst einmal richtig.
Wenn ich aber eine Option auswähle, wird mir zwar die Meldung "Alles bestens" angezeigt, aber nach wegklicken der Meldung kommt die Meldung "Daten fehlen", die UF schließt sich und anschließend kommt die Meldung "Daten fehlen" nochmal.
Was mache ich nicht richtig?
Hat jemand einen Tipp für mich?
Gruß
Peer