Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Welches Optionsfeld ist gewählt ?

Forumthread: Welches Optionsfeld ist gewählt ?

Welches Optionsfeld ist gewählt ?
24.11.2002 12:00:53
Wolfgang
Toll dieses Forum hier hat mir schon viel geholfen

jedoch jetzt suche ich auch eine Lösung die ich hier noch nicht
gefunden habe ..

Ich habe ein Formular erstellt mit einer Optionsgruppe aus 6 Button.
zur Zeit frage ich beim Schließen mit OK jedes Optionbutton einzeln ab, ob es ausgewählt ist um dann die entsprechende Funktion auslösen zu können.
Es ist und darf aber immer nur 1 Aktiv sein
Das ist auch ok '

gibt es einen Möglichkeit die aktive Option direkt auszulesen
-->Welche der 6 Optionen.value aus der Gruppe Meldung ist true<--

ausser in der Schleife abzufragen


Die Gruppe (groupname) heißt Meldung mit 6 Opt_Button's

if Button1.value = true then
goto 1
endif
if Button2.value = true then
goto 2
endif
...


Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Welches Optionsfeld ist gewählt ?
24.11.2002 12:04:44
Georg_Zi
Hallo Wolfgang

setzte doch eine Variable beim Click Ereignis und Frage diese Variable beim schliessen ab. Natürlich geht das auch über eine Schleife, aber ich Vermute so ist es einfacher.

Gruß Georg

Re: Welches Optionsfeld ist gewählt ?
24.11.2002 12:19:29
andre
Hallo Wolfgang,
probier mal das:

Private Sub CommandButton1_Click()
MsgBox Frame1.ActiveControl.Name
End Sub

Das ist nur nicht ganz 100%ig. Wenn keines gewählt ist, kommt das 1. aus dem Frame.

gruss andre

Anzeige
Re: Welches Optionsfeld ist gewählt ?
24.11.2002 12:41:45
Wolfgang
danke habe ich auch schon als Umweg drin
Trotzdem müßte es anders möglich sein
wolfgang
Re: Welches Optionsfeld ist gewählt ?
24.11.2002 12:46:49
Wolfgang
Danke aber funktioniert nicht da noch weiter Eingabefelder
danach angesprochen sein Könnten

Ausserdem
Das ActiveControl verweist auf Objekt welches zum verlassen des UserForm's benutzt wird.
trotzdem Dank für die schnelle Unterstützungsversuche

Wolfgang

Anzeige
Re: Welches Optionsfeld ist gewählt ?
24.11.2002 12:56:48
Georg_Zi
Hallo Wolfgang

ob das so einfacher ist ???


Option Explicit
Private Sub CommandButton1_Click()
Dim Cb As Object
For Each Cb In Me.Controls
If Mid(Cb.Name, 1, 12) = "OptionButton" Then
If Cb.Value Then
MsgBox Cb.Name & " gedrückt"
Exit For
End If
End If
Next Cb
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Hajo

Anzeige
Re: Welches Optionsfeld ist gewählt ?
24.11.2002 13:16:54
Wolfgang
DANKE -- nur kann ich dann den Optionsfelder keine sinnvollen Namen mehr geben

Gleiches erreiche ich mit
Select Case OptionsButton.Name
Case "Urlaub"
..
Case "Fortbildung"
..
Case "Krank"
...
End Select

;
Anzeige

Infobox / Tutorial

Optionsfeld in Excel abfragen: Ein Leitfaden


Schritt-für-Schritt-Anleitung

  1. Erstelle ein UserForm in Excel mit einer Optionsgruppe, die mehrere Optionsfelder (z. B. OptionButton1, OptionButton2, etc.) enthält.

  2. Füge einen CommandButton hinzu, um die Abfrage zu starten.

  3. Verwende den folgenden VBA-Code im Click-Ereignis des CommandButtons, um das aktuell gewählte Optionsfeld abzufragen:

    Private Sub CommandButton1_Click()
       Dim Cb As Object
       For Each Cb In Me.Controls
           If TypeName(Cb) = "OptionButton" Then
               If Cb.Value Then
                   MsgBox Cb.Name & " ist gewählt."
                   Exit For
               End If
           End If
       Next Cb
    End Sub
  4. Teste das UserForm und klicke auf die verschiedenen Optionsfelder, um zu sehen, welches aktiv ist.


Häufige Fehler und Lösungen

  • Problem: Der Code funktioniert nicht, wenn kein Optionsfeld ausgewählt ist.

    • Lösung: Stelle sicher, dass mindestens eines der Optionsfelder als Standard aktiviert ist. Alternativ kannst du den Code anpassen, um eine entsprechende Fehlermeldung anzuzeigen.
  • Problem: Du erhältst die Meldung des ersten Optionsfeldes, auch wenn keines ausgewählt ist.

    • Lösung: Achte darauf, dass du den Typ des Steuerelements abfragst, um sicherzustellen, dass nur die Optionsfelder überprüft werden.

Alternative Methoden

Du kannst auch die Select Case-Anweisung verwenden, um die gewählte Option abzufragen. Hier ein Beispiel:

Select Case True
    Case OptionButton1.Value
        MsgBox "Urlaub ist gewählt."
    Case OptionButton2.Value
        MsgBox "Fortbildung ist gewählt."
    Case OptionButton3.Value
        MsgBox "Krank ist gewählt."
End Select

Diese Methode kann leserlicher sein, insbesondere wenn du eine große Anzahl von Optionsfeldern hast.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um die gewählte Option auszulesen und eine spezifische Funktion auszulösen:

Private Sub CommandButton1_Click()
    If OptionButton1.Value Then
        Call Urlaub
    ElseIf OptionButton2.Value Then
        Call Fortbildung
    ElseIf OptionButton3.Value Then
        Call Krank
    End If
End Sub

Sub Urlaub()
    MsgBox "Du hast Urlaub gewählt."
End Sub

Sub Fortbildung()
    MsgBox "Du hast Fortbildung gewählt."
End Sub

Sub Krank()
    MsgBox "Du hast Krank gewählt."
End Sub

Tipps für Profis

  • Namenskonvention: Vergib sinnvolle Namen für deine Optionsfelder, um die Lesbarkeit des Codes zu erhöhen.
  • Verwende Variablen: Du kannst eine Variable einsetzen, die den aktuell gewählten Wert speichert, um mehrfaches Abfragen zu vermeiden.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler während der Ausführung zu vermeiden, z. B. durch das Hinzufügen von On Error GoTo.

FAQ: Häufige Fragen

1. Wie kann ich die Auswahl eines Optionsfeldes zurücksetzen?
Du kannst alle Optionsfelder zurücksetzen, indem du ihren Wert auf False setzt. Zum Beispiel:

OptionButton1.Value = False
OptionButton2.Value = False

2. Was tun, wenn ich mehrere Gruppen von Optionsfeldern habe?
Nutze separate Frames oder Gruppen für jede Optionsgruppe, um die Übersichtlichkeit zu erhöhen und den Code besser zu strukturieren.

3. Ist dieser Code in allen Excel-Versionen anwendbar?
Ja, dieser VBA-Code sollte in allen modernen Excel-Versionen funktionieren, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige