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

Forumthread: 2 Gruppen von Optionbutton abfragen

2 Gruppen von Optionbutton abfragen
Optionbutton
Hallo zusammen,
stehe vor folgendem Problem!
in meiner Excelmappe ein Makro mit dem eine Userform geöffnet wird
in diesem Fenster hab ich einmal diese Multiseiten eingefügt mit ungefähr 5 oder 6 Seiten eingefügt, und dazu in dieser Userform unterhalb der Multiseiten einen commandbutton!
Auf jeder der einzelnen Multiseiten befinden sich 2 Gruppen von Optionbuttons, beide mit Frame um je seite und je frame einen Optionbutton auswählen zu können...
Beim klicken auf den Commandbutton soll dann ein Makro gestartet werden, dass alle Optionbuttons "abfragt" und dann einer variable entsprechende Werte zuweist ob in Frame1 button 1, 2, 3, 4 und in Frame 2 eben button 1 2, 3, 4 oder 5 ausgewählt ist!
der variable a soll dann eben ein wert von 1 - 4 under variable b einer von 1 - 5 zugewiesen werden!
Ich habs jetz vorerst mal mit ner if abfrage versucht, klappt aber nicht so ganz und ein fehler "Objekt unterstützt diese methode oder eigenschaft nicht" ...
' Standard Aufstellung Position
If UserForm2.MultiPage1.Frame2.OptionButton5.Value = True Then
positionStandard = "LW"
ElseIf UserForm2.MultiPage1.Frame2.OptionButton6.Value = True Then
positionStandard = "C"
ElseIf UserForm2.MultiPage1.Frame2.OptionButton7.Value = True Then
positionStandard = "RW"
ElseIf UserForm2.MultiPage1.Frame2.OptionButton8.Value = True Then
positionStandard = "LD"
ElseIf UserForm2.MultiPage1.Frame2.OptionButton9.Value = True Then
positionStandard = "RD"
Else: positionStandard = ""
End If
' Standard Aufstellung Reihe
If UserForm2.MultiPage1.Frame1.OptionButton1.Value = True Then
reiheStandard = 1
ElseIf UserForm2.MultiPage1.Frame1.OptionButton2.Value = True Then
reiheStandard = 2
ElseIf UserForm2.MultiPage1.Frame1.OptionButton3.Value = True Then
reiheStandard = 3
ElseIf UserForm2.MultiPage1.Frame1.OptionButton4.Value = True Then
reiheStandard = 4
Else: reiheStandard = ""
End If
gilt eben nur für eine Seite, klappt aber so leider schon nicht :(
wenn ich des frame rausnehme, läufts zwar durch, aber macht einfach gar nichts, :/
jemand nen tipp für mich?
danke im vorraus und grüße
emanuel burger
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: 2 Gruppen von Optionbutton abfragen
19.11.2010 14:09:02
Optionbutton
Hallo Emanuel,
bin jetzt nicht der Pro aber was soll das Frame in deinem Code?
Wenn Du die Optionbutton in einer Gruppe haben willst (also nur eins auswaehlbar) kannst du diese ueber die Eigenschaften bestimmen.
Ist der Code in der Userform, kannst Du sie direkt ansprechen mit OptionButton1.Value, wenn nicht dann wuerde UserForm2.OptionButton4.Value reichen.
Ist jetzt mal spontan das was mir einfaellt aber fuer mein begrenztes halbwissen ohne Beipieldatei schwer zu ueberblicken.
Gruss
Abu
Anzeige
AW: 2 Gruppen von Optionbutton abfragen
19.11.2010 15:05:53
Optionbutton
die buttons nur mit optionbutton1.value statt mit userform1....anzusprechen und nicht mit frame sondern übereigenschaften gruppieren wars geheimnis, jetz klappt alles, dankeschöööön :)
grüße
gerne - owt
19.11.2010 15:17:08
abu
.
AW: 2 Gruppen von Optionbutton abfragen
19.11.2010 14:13:55
Optionbutton
ps: Frame macht glaube ich nur Sinn wenn Du die Frames in einer Schleife abfrags.
Pruefe alle Controls im Frame:
zb:
Dim optionbutton As Control
For Each optionbutton In UserForm1.Frame1.Controls
...
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

2 Gruppen von Optionbuttons in Excel VBA abfragen


Schritt-für-Schritt-Anleitung

  1. Erstelle eine Userform: Öffne den VBA-Editor in Excel (Alt + F11) und füge eine neue Userform hinzu.
  2. Füge ein MultiPage-Steuerelement hinzu: Ziehe das MultiPage-Steuerelement auf die Userform und erstelle mehrere Seiten.
  3. Füge Frames und Optionbuttons hinzu: Platziere für jede Seite zwei Frames und füge die entsprechenden Optionbuttons in jeden Frame ein.
  4. Füge einen Commandbutton hinzu: Dieser Button wird später verwendet, um die Auswahl der Optionbuttons abzufragen.
  5. Erstelle das VBA-Skript: Füge den folgenden Code in das Click-Ereignis des Commandbuttons ein:
Dim positionStandard As String
Dim reiheStandard As Variant

' Abfrage der Optionbuttons in Frame 1
If UserForm2.MultiPage1.Frame1.OptionButton1.Value = True Then
    reiheStandard = 1
ElseIf UserForm2.MultiPage1.Frame1.OptionButton2.Value = True Then
    reiheStandard = 2
ElseIf UserForm2.MultiPage1.Frame1.OptionButton3.Value = True Then
    reiheStandard = 3
ElseIf UserForm2.MultiPage1.Frame1.OptionButton4.Value = True Then
    reiheStandard = 4
Else
    reiheStandard = ""
End If

' Abfrage der Optionbuttons in Frame 2
If UserForm2.MultiPage1.Frame2.OptionButton5.Value = True Then
    positionStandard = "LW"
ElseIf UserForm2.MultiPage1.Frame2.OptionButton6.Value = True Then
    positionStandard = "C"
ElseIf UserForm2.MultiPage1.Frame2.OptionButton7.Value = True Then
    positionStandard = "RW"
ElseIf UserForm2.MultiPage1.Frame2.OptionButton8.Value = True Then
    positionStandard = "LD"
ElseIf UserForm2.MultiPage1.Frame2.OptionButton9.Value = True Then
    positionStandard = "RD"
Else
    positionStandard = ""
End If
  1. Teste die Userform: Starte die Userform, wähle verschiedene Optionbuttons aus und klicke auf den Commandbutton, um die Ergebnisse zu prüfen.

Häufige Fehler und Lösungen

  • Fehler: "Objekt unterstützt diese Methode oder Eigenschaft nicht."

    • Lösung: Stelle sicher, dass du die Optionbuttons innerhalb des Frames korrekt referenzierst. Wenn du das Frame nicht benötigst, kannst du die Optionbuttons direkt ansprechen, z.B. OptionButton1.Value.
  • Fehler: Keine Auswahl wird getroffen.

    • Lösung: Überprüfe, ob die Optionbuttons tatsächlich aktiviert sind und dass du die Value-Eigenschaft korrekt abfragst. Achte darauf, dass die Optionbuttons in einer Gruppe platziert sind.

Alternative Methoden

Eine alternative Methode zur Abfrage von Optionbuttons ist die Verwendung einer Schleife. So kannst du alle Optionbuttons in einem Frame abfragen, ohne jeden einzelnen Button manuell anzugeben:

Dim optionbutton As Control
For Each optionbutton In UserForm2.MultiPage1.Frame1.Controls
    If TypeName(optionbutton) = "OptionButton" Then
        If optionbutton.Value = True Then
            reiheStandard = optionbutton.Caption ' oder eine andere Logik
        End If
    End If
Next optionbutton

Praktische Beispiele

  • Beispiel für die Verwendung von Optionbuttons: Angenommen, du hast zwei Gruppen von Optionbuttons für die Auswahl zwischen verschiedenen Positionen und Reihen. Du kannst die oben genannten Codeschnipsel verwenden, um die Benutzereingaben effizient zu verarbeiten.

Tipps für Profis

  • Verwende mit Bedacht: Nutze Frames, wenn du die Optionbuttons gruppieren möchtest. Bei einer großen Anzahl von Buttons kann dies die Übersichtlichkeit verbessern.
  • Kombiniere mit anderen Steuerelementen: Denke daran, dass du auch andere Steuerelemente wie ComboBoxen oder ListBoxen in deiner Userform verwenden kannst, um die Benutzerauswahl zu verbessern.
  • Fehlerbehandlung implementieren: Verwende On Error Resume Next, um potenzielle Fehler abzufangen und die Benutzererfahrung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich den Wert eines Optionbuttons abfragen?
Du kannst den Wert eines Optionbuttons mit .Value abfragen, zum Beispiel OptionButton1.Value.

2. Was ist der Unterschied zwischen einem Frame und einem Optionbutton?
Ein Frame dient dazu, mehrere Optionbuttons zu gruppieren, sodass nur einer in der Gruppe ausgewählt werden kann. Optionbuttons sind die einzelnen Auswahlmöglichkeiten innerhalb eines Frames.

3. Wie gehe ich mit mehreren Seiten in einer Userform um?
Du kannst mehrere Seiten in einer MultiPage verwenden und die Optionbuttons auf jeder Seite entsprechend abfragen, wie im Schritt-für-Schritt-Anleitung beschrieben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige