Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Gruppierung von Option-Buttons abfragen

Gruppierung von Option-Buttons abfragen
18.09.2017 12:43:55
Option-Buttons
Hallo zusammen,
ich habe in eine UserForm zwei verschiedene Gruppen von OptionButtons hinterlegt. Was ich nun brauche, aber nicht hinbekomme ist folgendes:
Ich habe zwei Gruppen, nennen wir sie A und B. Ich möchte jetzt ermitteln, welcher OptionButton aus Gruppe A "True" ist und dann den Inhalt, also Caption, als Variable haben. Mit der Variable würde ich dann weiter arbeiten.
Hat da jemand eine gute Idee?
Vielen Dank und Grüße
Aaron
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox statt Optionbuttongruppe
18.09.2017 12:55:28
Daniel
Hi
Ersetze jede Optionbuttongruppe durch eine Listbox.
Dann kannst du den gewünschten Wert einfach und direkt mit ListboxA.Text abfragen.
Man kann auch die Listbox so formatieren, dass sie wie eine Gruppe untereinander stehnender Optionbuttons aussieht.
Gruß Daniel
AW: Gruppierung von Option-Buttons abfragen
18.09.2017 12:59:56
Option-Buttons
Hallo Aaron,
du musst erst einen Frame auf die Userform legen und dann dieine Optionsbutton darin positionieren, damit gruppierst du sie.
Gruß
yummi
Anzeige
AW: Gruppierung von Option-Buttons abfragen
18.09.2017 13:22:33
Option-Buttons
Hallo Aaron,
als erstes musst du die "GroupName" - Eigenschaft der OptionButtons synchronisieren. Damit hast du im Change-Event der OptionButtons die Möglichkeit deren Status abzufragen.
Gruß
Nepumk
AW: Gruppierung von Option-Buttons abfragen
18.09.2017 14:01:01
Option-Buttons
Hallo zusammen,
erstmal recht vielen Dank für eure Antworten. Die GroupNames habe ich bereits vergeben - aber wie das mit dem Change-Event funktioniert, da habe ich wirklich keine Idee. Ich habe wirklich nur rudimentäre VBA-Kenntnisse, könnte mir da jemand weiter helfen?
Vielen Dank und Grüße
Aaron
Anzeige
AW: Gruppierung von Option-Buttons abfragen
18.09.2017 14:24:05
Option-Buttons
wie gesagt, für minimalen Programmieraufwand besser Listboxen anstelle Optionbuttongruppen einsetzen.
bei Listboxen kannst du jederzeit den aktuellen Auswahlstand ohne irgendwelche Schleifen abfragen.
Gruß Daniel
AW: Gruppierung von Option-Buttons abfragen
18.09.2017 14:53:57
Option-Buttons
Hallo Daniel,
vielen Dank für den Tipp. Das sieht zwar nicht ganz so aus, wie die OptionsButtons, aber es ist wirklich gut machbar.
Viele Grüße & Danke
Aaron
Anzeige
AW: Gruppierung von Option-Buttons abfragen
18.09.2017 15:04:55
Option-Buttons
Wenn du die Eigenschaften:
ListStyle = 1 - Option
SpecialEffects = 0 - Flat
BackColor = Hintergrundfarbe der Userform
setzt, dann wird die Listbox einer Optionbuttengruppe sehr ähnlich (mit Radiobuttons). Lediglich den blauen Balken bekommst du nicht weg, der ist Systemseitig vorgegeben.
solange es möglich ist, die Auswahloptionen direkt untereinander anzuordnen, ist die Listbox immer die bessere Wahl.
Optionbuttons sind nur dann sinnvoll, wenn die einzelnen Optionen nebeneinander oder über den Schirm verstreut angeordnet werden müssen.
Gruß Daniel
Anzeige
AW: Gruppierung von Option-Buttons abfragen
18.09.2017 16:12:31
Option-Buttons
Hallo Daniel,
vielen Dank für die Erläuterungen! Genau das ist bei mir der Fall, die OptionButtons sollen horizontal angeordnet sein, aber mit deinem Tipp bin ich der Lösung schon einen ganzen Schritt näher gekommen.
Insbesondere kann ich bei künftigen Projekten nun auf die ListBox zurückgreifen.
Vielen Dank und Grüße
Aaron
Anzeige
AW: Gruppierung von Option-Buttons abfragen
18.09.2017 14:50:04
Option-Buttons
Hallo Aaron,
das geht dann nur über ein Klassenmodul. Soll ich dir eine Beispielmappe machen?
Gruß+Nepumuk
AW: Gruppierung von Option-Buttons abfragen
18.09.2017 14:57:43
Option-Buttons
Hallo Nepumuk,
das wäre in der Tat eine lehrreiche Sache, vor allem, weil ich das gerne mit den OptionButtons machen würde, falls das nicht zu viel Aufwand für dich ist :). Das mit den ListBoxen funktioniert zwar auch, aber es sieht eben nicht so aus, wie ich mir das vorstelle.
Vielen Dank und Grüße
Aaron
Anzeige
AW: Gruppierung von Option-Buttons abfragen
18.09.2017 23:12:18
Option-Buttons
HI
wenn du mehrere Optionbuttons in verschiedenen Gruppen hast und du abfragen willst, welcher Optionbutton in einer bestimmten Gruppe ausgewählt ist, dann geht das mit einer Schleife über die Steuerelemente der Userform, in welcher du zuerst abfragst, ob das Steuerlelement ein Optionbutton ist, wenn ja, zu welcher Gruppe es gehört und ob es aktiv ist:
Dim Ergebnis As String
Dim crt As Control
For Each crt In Me.Controls
If TypeName(crt) = "OptionButton" Then
If crt.GroupName = "Gruppe A" Then
If crt.Value = True Then
Ergebnis = crt.Caption
Exit For
End If
End If
End If
Next
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Gruppierung von Option-Buttons abfragen


Schritt-für-Schritt-Anleitung

Um den Wert eines ausgewählten Option-Buttons in einer UserForm abzufragen, kannst du die folgenden Schritte befolgen:

  1. UserForm erstellen: Füge eine UserForm in dein Excel-VBA-Projekt ein.
  2. Option-Buttons hinzufügen: Platziere zwei Gruppen von Option-Buttons auf der UserForm. Du kannst dies tun, indem du Frames verwendest, um die Option-Buttons zu gruppieren.
  3. GroupName festlegen: Stelle sicher, dass du die GroupName-Eigenschaft für die Option-Buttons korrekt konfiguriert hast, damit du sie später abfragen kannst.
  4. Change-Event verwenden: Implementiere das Change-Event, um den Status der Option-Buttons abzufragen, wenn sich die Auswahl ändert.

Hier ist ein einfaches Beispiel für den Code, den du verwenden kannst:

Private Sub OptionButton1_Change()
    If OptionButton1.Value Then
        MsgBox "OptionButton 1 ist ausgewählt."
    End If
End Sub

Häufige Fehler und Lösungen

Fehler 1: Keine Abfrage möglich

  • Lösung: Stelle sicher, dass die GroupName-Eigenschaft korrekt gesetzt ist. Andernfalls kann VBA die Option-Buttons nicht als Gruppe erkennen.

Fehler 2: Change-Event wird nicht ausgelöst

  • Lösung: Überprüfe, ob das Change-Event korrekt mit dem entsprechenden Option-Button verknüpft ist.

Alternative Methoden

Wenn du eine einfachere Methode zur Abfrage der Auswahl bevorzugst, kannst du anstelle von Option-Buttons auch ListBoxen verwenden. Diese bieten eine direkte Möglichkeit, den aktuellen Auswahlstand abzufragen, ohne dass du Schleifen oder komplexe Events implementieren musst.

Beispiel für das Abfragen einer ListBox:

Dim Auswahl As String
Auswahl = ListBox1.Text
MsgBox "Du hast die Option '" & Auswahl & "' gewählt."

Praktische Beispiele

Hier ist ein Beispiel, um den Wert eines Option-Buttons in einer bestimmten Gruppe abzufragen:

Dim Ergebnis As String
Dim crt As Control

For Each crt In Me.Controls
    If TypeName(crt) = "OptionButton" Then
        If crt.GroupName = "Gruppe A" Then
            If crt.Value = True Then
                Ergebnis = crt.Caption
                Exit For
            End If
        End If
    End If
Next

MsgBox "Der ausgewählte OptionButton in Gruppe A ist: " & Ergebnis

Tipps für Profis

  • Nutze Klassenmodule, um die Verwaltung von Option-Buttons zu verbessern, insbesondere wenn du mit mehreren Gruppen arbeitest.
  • Denke daran, die Formatierung deiner ListBoxen anzupassen, sodass sie den Option-Buttons ähnlich sehen, um eine konsistente Benutzeroberfläche zu schaffen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Gruppen von Option-Buttons abfragen? Du kannst für jede Gruppe eine separate Schleife einrichten oder den GroupName in einer einzigen Schleife abfragen, wie im Beispiel gezeigt.

2. Was ist der Vorteil von ListBoxen gegenüber Option-Buttons? ListBoxen ermöglichen eine einfachere Abfrage des aktuellen Auswahlstandes und benötigen weniger Code, um die Auswahl zu verwalten, was den Programmieraufwand reduziert.

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