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

Auslesen welche CheckBox aktiviert wurde

Forumthread: Auslesen welche CheckBox aktiviert wurde

Auslesen welche CheckBox aktiviert wurde
Olaf
Hallo
Ich habe folgendes Problem.
Mit CheckBox'en die auf einem Tabellenblatt angeordnet sind wird eine UserForm aufgerufen, die dann,
je nachdem welche CheckBox aktiviert wurde, dynamisch angepasst wird.
Ich möchte nun beim Schließen der UserForm die CheckBox deaktivieren, welche die Userform aufgerufen hat.
Da ich den CheckBox'en eigene Namen verpasst habe und, für mich nicht ersichtlich, den CB ein Index zugeordnet ist, weiss ich nicht wie ich das angehen soll.
Für Eure Hilfe im Voraus vielen Dank!
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Auslesen welche CheckBox aktiviert wurde
20.06.2010 18:40:26
Hajo_Zi
Hallo Olaf,
Schreibe beim Aufruf
Userform1.tag="Dein_Checkboxname", dann brauchst Du beim schliessen nur die Tag Eigenbschaft auslesen.

AW: Auslesen welche CheckBox aktiviert wurde
20.06.2010 19:12:35
Olaf
Hallo Hajo
Gewusst Wie!?!? ;-)
Besten Dank dafür.
Jetzt ist aber das nächste Problem da.
Mit Tag habe ich jetzt den Namen der CB als String. Wie aber bekomme ich den hierhin
Tabelle1.(Name der CB).Value = False
Gruß Olaf
Anzeige
Formular- oder Steuerelement? oT
20.06.2010 19:14:30
{Boris}
Grüße Boris
Sei´s drum...
20.06.2010 19:18:39
{Boris}
Hi Olaf,
hier beide Varianten:
Sub Formular()
Tabelle1.CheckBoxes("Kontrollkästchen 1").Value = False
End Sub
Sub Steuerelement()
Tabelle1.OLEObjects("Checkbox1").Object.Value = False
End Sub
Und den Namen beziehst Du aus der Stringvariablen.
Grüße Boris
Anzeige
AW: Formular- oder Steuerelement? oT
20.06.2010 19:47:42
Olaf
Hallo Boris
Ich fummel da schon 4 Stunden dran rum und so einfach ist es. aaarrrrrrrgggggg ;-)
Besten Dank für Eure (vorallem so schnelle) Hilfe
Gruß Olaf
;
Anzeige
Anzeige

Infobox / Tutorial

CheckBox in Excel mit VBA Auslesen und Deaktivieren


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Erstelle eine UserForm in Excel, die durch eine Checkbox aufgerufen wird.

  2. Tag-Eigenschaft nutzen: Füge im Code der Checkbox beim Aufruf der UserForm die folgende Zeile hinzu:

    Userform1.Tag = "Dein_Checkboxname"
  3. Checkbox abfragen: Im Code der UserForm kannst Du den Namen der aktivierten Checkbox abfragen:

    Dim cbName As String
    cbName = Userform1.Tag
  4. Checkbox deaktivieren: Beim Schließen der UserForm kannst Du dann die Checkbox wie folgt deaktivieren:

    Tabelle1.CheckBoxes(cbName).Value = False
  5. Testen: Führe die UserForm aus und teste, ob die Checkbox beim Schließen der UserForm deaktiviert wird.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden": Stelle sicher, dass der Name der Checkbox korrekt in der Tag-Eigenschaft gesetzt wurde. Überprüfe auch, ob die Checkbox im richtigen Tabellenblatt vorhanden ist.

  • Lösung: Verwende die .Value-Eigenschaft für die Checkbox, um sicherzustellen, dass Du die Checkbox richtig ansprichst:

    Tabelle1.CheckBoxes("Kontrollkästchen 1").Value = False

Alternative Methoden

  • OLEObjects verwenden: Anstatt die Checkbox über die CheckBoxes-Methode zu steuern, kannst Du auch OLEObjects verwenden:

    Tabelle1.OLEObjects("Checkbox1").Object.Value = False
  • Direktes Auslesen: Du kannst die Checkbox auch direkt abfragen und den Status lesen:

    If Tabelle1.CheckBoxes("Kontrollkästchen 1").Value = 1 Then
       ' Checkbox ist aktiv
    End If

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du die Checkbox in einer UserForm abfragen und deaktivieren kannst:

Private Sub CheckBox1_Click()
    Userform1.Tag = "CheckBox1"
    Userform1.Show
End Sub

Private Sub Userform1_QueryClose(Cancel As Integer)
    Dim cbName As String
    cbName = Userform1.Tag
    Tabelle1.CheckBoxes(cbName).Value = False
End Sub

Tipps für Profis

  • Verwendung von Arrays: Wenn Du mehrere Checkboxen hast, kannst Du die Namen in einem Array speichern und so die Logik vereinfachen.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass der Code auch bei falschen Eingaben stabil bleibt:

    On Error Resume Next
    Tabelle1.CheckBoxes(cbName).Value = False
    On Error GoTo 0

FAQ: Häufige Fragen

1. Wie kann ich mehrere Checkboxen gleichzeitig abfragen? Du kannst eine Schleife verwenden, um durch alle Checkboxen zu iterieren und deren Status abzufragen.

2. Was mache ich, wenn ich die Checkboxen dynamisch generiere? Stelle sicher, dass Du den Namen der Checkboxen beim Erstellen korrekt speicherst, um später darauf zugreifen zu können.

3. Gibt es Unterschiede zwischen Formular- und ActiveX-Checkboxen? Ja, die Methoden zum Abfragen und Setzen der Werte sind unterschiedlich, daher solltest Du die jeweilige Methode entsprechend wählen (CheckBoxes vs. OLEObjects).

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