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

Optionbuttons in einem Frame

Forumthread: Optionbuttons in einem Frame

Optionbuttons in einem Frame
Markus
Hallo liebe Community,
es ist eine Qual. Seit gut 2 Stunden such ich nach der Lösung für mein Problem (Office 2007).
Ich habe über "weitere Steuerelemente" etliche "Microsoft Forms 2.0 Frame" eingefügt.
Über Rechtsklick->Rahmenobjekt-> Bearbeiten -> Werkzeugsammlung habe ich dann Optionbuttons in den Rahmen eingefügt.
Jetzt wollte ich mit einem simplen VBA Code im Tabellenblatt ein Wert ausgeben lassen, wenn ein bestimmter Optionbutton aktiv ist.
Private Sub ob_1_Change()
If ob_1.Value = True Then
Worksheets("Attraktivität").Range("M3") = 100
ElseIf ob_1.Value = False Then
Worksheets("Attraktivität").Range("M3") = 140
End If
End Sub

Es kommt der Fehler 424, dass ein Objekt erforderlich ist. Wieso in Gottes Namen werden lediglich die etlichen Rahmen als Objekte geführt und die Optionsbuttons in den Rahmen nicht? Gibt es irgendeine Lösung für das Problem? Ansonsten darf ich wieder tausende neue Optionsbuttons erstellen, weil man sie auch nicht aus den Rahmen rauskopieren kann .....
Vielen Dank für Eure Hilfe und viele Grüße,
Markus
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Optionbuttons in einem Frame
07.02.2012 17:11:24
selli
hallo markus,
ich denke die optionsbuttons werden als objekte im rahmen geführt, oder?
versuche mal den rahmenvorab auch zu benennen:
z.bsp. rahmen1.ob_1.value (das sheet vorweg ist in den meisten fällen auch nicht verkehrt.
gruß
selli
AW: Optionbuttons in einem Frame
07.02.2012 18:27:00
Markus
Ich werde es mal morgen auf der Arbeit testen, danke.
Versteh ich es richtig, dass der Rahmen in deinem Beispiel "rahmen1" heißt und der optionsbutton der im Rahmen drin ist "ob_1" ?
Klingt irgendwie als Lösung gut. Bin gespannt :)
Anzeige
AW: Optionbuttons in einem Frame
08.02.2012 09:43:04
Markus
Es hat nicht geklappt :(
Den Rahmen habe ich r2 genannt, den Optionbutton ob21
Private Sub ob21_Change()
If Worksheets("Attraktivität").r2.ob21.Value = True Then
Worksheets("Attraktivität").Range("M3") = 100
ElseIf Worksheets("Attraktivität").r2.ob21.Value = False Then
Worksheets("Attraktivität").Range("M3") = 140
End If
End Sub

Wenn ich in der

Private Sub Zeile auch noch das r2 ergänze kommt ein Fehler (Synatxfehler ..).

Anzeige
AW: Optionbuttons in einem Frame
08.02.2012 10:06:14
selli
hallo markus,
also mein vorschleg, die buttons in den rahmen anzusprechen ist falsch.
du musst die buttons im blatt ansprechen (sheets("tabelle1").ob21.......)
meine vermutung jetzt ist folgende.
hast du auch wirklich die namen der buttons geändert, und nicht nur die caption?
ausserdem musst du den jeweils voneinander abhängigen buttons eine gruppe zuweisen (eigenschaft groupname), ansonstenkannst du unter der vielzahl deiner buttons immer nur einen auf true setzen.
es wäre sinnvoll mal eine beispieldatei hochzuladen.
gruß
selli
Anzeige
AW: doch im frame ansprechen
08.02.2012 10:44:00
Markus
Hallo Selli,
dass bezweifele ich, da ich das selbe in einer jungfräulichen Datei ja auch versucht habe.
Hier die aktuelle Datei.
https://www.herber.de/bbs/user/78795.xlsm
Wie ist der Syntax?
Worksheets("TABELLENBLATTNAME").RAHMENNAMEN.GRUPPENNAME.OPTIONSBUTTONNAME_Value = True
Ist das so richtig? Allerdings beschwert er sich immer in der Private Sub Zeile ....
Anzeige
AW: doch im frame ansprechen
08.02.2012 15:13:09
selli
hallo markus,
kannst du das ganze auch als xls-file schicken?
habe version office xp.
gruß selli
AW: doch im frame ansprechen
08.02.2012 15:38:45
Markus
Hallo Selli,
habe das Problem gelöst.
Ich vermute, dass der Rahmen einfach der falsche war.
Hatte zunächst unter weitere Steuerelemente den "Mircrosoft Forms 2.0 Frame" genommen. Habe jetzt ein Gruppenfeld genommen und jetzt funktionierts.
oh mann, ein langer Weg ...
Danke an die Community und an Dich Selli.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Optionbuttons in einem Frame richtig nutzen


Schritt-für-Schritt-Anleitung

  1. Einfügen eines Frames: Gehe zu "Entwicklertools" -> "Einfügen" und wähle das "Microsoft Forms 2.0 Frame" aus. Ziehe den Frame auf dein Arbeitsblatt.

  2. Einfügen von Optionbuttons: Rechtsklicke auf den erstellten Frame, wähle "Rahmenobjekt" -> "Bearbeiten", und füge dann die Optionbuttons hinzu.

  3. Benennen der Objekte: Achte darauf, die Namen der Optionbuttons und des Frames korrekt zu vergeben. Zum Beispiel: Frame = r2, Optionbutton = ob21.

  4. VBA-Code schreiben: Öffne das VBA-Editor-Fenster (ALT + F11) und füge den folgenden Code ein, um die Werte in einer Zelle zu ändern, je nach Aktivierung eines Optionbuttons:

    Private Sub ob21_Change()
       If Worksheets("Attraktivität").r2.ob21.Value = True Then
           Worksheets("Attraktivität").Range("M3") = 100
       ElseIf Worksheets("Attraktivität").r2.ob21.Value = False Then
           Worksheets("Attraktivität").Range("M3") = 140
       End If
    End Sub
  5. Testen: Schließe den VBA-Editor und teste die Funktionalität, indem du die Optionbuttons im Frame aktivierst.


Häufige Fehler und Lösungen

  • Fehler 424: Objekt erforderlich: Dieser Fehler tritt häufig auf, wenn du versuchst, auf einen Optionbutton zuzugreifen, der nicht korrekt benannt oder nicht im richtigen Rahmen ist. Überprüfe, ob der Rahmen und die Optionbuttons die richtigen Namen haben.

  • Syntaxfehler: Achte darauf, dass du die Namen der Objekte korrekt in deinem VBA-Code verwendest. Der richtige Syntax sollte sein:

    Worksheets("TABELLENBLATTNAME").RAHMENNAMEN.GRUPPENNAME.OPTIONSBUTTONNAME.Value
  • Gruppierung der Buttons: Stelle sicher, dass die Optionbuttons einer Gruppe zugewiesen sind, um sicherzustellen, dass nur einer gleichzeitig ausgewählt werden kann.


Alternative Methoden

  • Verwendung von ActiveX-Steuerelementen: Statt Microsoft Forms 2.0 kannst du auch ActiveX-Optionbuttons verwenden. Diese bieten mehr Flexibilität, erfordern jedoch möglicherweise ein wenig mehr Programmierkenntnisse.

  • Direkte Programmierung ohne Frames: Du kannst auch direkt Optionbuttons ohne einen Frame verwenden, indem du sie auf das Arbeitsblatt ziehst und die VBA-Logik entsprechend anpasst.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Optionbuttons in einem Frame nutzen kannst:

Private Sub ob1_Change()
    If ob1.Value = True Then
        Worksheets("Attraktivität").Range("M3") = 50
    ElseIf ob2.Value = True Then
        Worksheets("Attraktivität").Range("M3") = 75
    End If
End Sub

In diesem Beispiel wird der Wert in Zelle M3 je nach aktivem Optionbutton geändert.


Tipps für Profis

  • Eindeutige Namen: Achte darauf, dass alle Steuerelemente eindeutige Namen haben, um Verwirrung zu vermeiden und deinen VBA-Code übersichtlich zu halten.

  • Verwendung von Gruppen: Wenn du mehrere Optionbuttons hast, stelle sicher, dass diese in Gruppen organisiert sind, damit die Auswahl effizient verwaltet werden kann.

  • Debugging: Nutze die Debugging-Tools im VBA-Editor, um Probleme schnell zu identifizieren. Setze Haltepunkte und überprüfe die Werte, um sicherzustellen, dass dein Code wie gewünscht funktioniert.


FAQ: Häufige Fragen

1. Warum funktioniert mein VBA-Code nicht? Überprüfe, ob die Namen der Steuerelemente korrekt sind und ob du auf das richtige Arbeitsblatt zugreifst.

2. Kann ich Optionbuttons ohne einen Frame verwenden? Ja, du kannst Optionbuttons direkt auf dem Arbeitsblatt platzieren, ohne einen Frame zu verwenden. Achte darauf, die Logik in deinem VBA-Code entsprechend anzupassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige