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

Checkboxen in Schleife abfragen

Forumthread: Checkboxen in Schleife abfragen

Checkboxen in Schleife abfragen
18.06.2003 17:30:06
Peter
Hier mal 'ne Frage an alle Objekt-Variablen-Spezialisten:

Ich habe in einer Userform fünf Checkboxen: CheckBox1 bis CheckBox5. Wie kann ich diese in einer Schleife abfragen? Ich dachte so nach dem Motto: CB = "Checkbox"&Zählvariable
wobei CB als objekt dimensioniert wird

Wie schaffe ich es, damit aus einem String, bzw. einer Stringvariablen ein Objekt wird?

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Checkboxen in Schleife abfragen
18.06.2003 17:35:04
Georg_Zi

Hallo Peter

ein Hallo zu Beginn und ein Gruß am Ende läst den Beitrag doch gleich viel freundlicher aussehen. Auch wenn Du den Beitrag am Computer eingibst sitzen an der anderen Seite doch Leute und keine Maschinen die Deine Frage beantworten und da sollte Zeit für die paar Worte doch vorhanden sein.


Ein Vorschlag wäre folgender Code

Oder Klassenprogrammierung.

Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel


Anzeige
Re: Checkboxen in Schleife abfragen
18.06.2003 19:56:06
Peter

Hallo Hajo!

Aus Frust muß ich wohl die Anrede vergessen haben, Asche auf mein Haupt.

Danke für deine Antwort!

Nur die Konstrukte mit den vielen Einzel-Abfragen über die If-Bedingungen wollte ich ja gerade vermeiden. Darüber kann ich die Checkboxen auch ohne Schleife abfragen.

Du hast mir aber mit der Variablen-Handhabung den richtigen Weg gewiesen: (Klappt jetzt ganz hervoragend!)

Sub CommandButton1_Click()

Dim cb As Control
Dim I%
Dim S$

I = 1

For Each cb In Me.Controls

S = "CheckBox" & I

If cb.Name = S And cb.Value = True Then

MsgBox ("Checkbox" & I & " ist an!")

End If

I = I + 1

Next cb

End Sub


Gruß
Peter




Anzeige
;
Anzeige

Infobox / Tutorial

Checkboxen in Excel VBA Userform abfragen


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und erstelle eine Userform, die mindestens fünf Checkboxen enthält (z.B. CheckBox1 bis CheckBox5).

  2. Füge einen CommandButton zur Userform hinzu. Diesen verwenden wir, um die Checkboxen abzufragen.

  3. Doppelklicke auf den CommandButton, um den VBA-Editor zu öffnen. Dort kannst du den folgenden Code einfügen:

    Private Sub CommandButton1_Click()
       Dim cb As Control
       Dim I As Integer
       Dim S As String
    
       I = 1
    
       For Each cb In Me.Controls
           S = "CheckBox" & I
    
           If cb.Name = S And cb.Value = True Then
               MsgBox ("Checkbox" & I & " ist an!")
           End If
    
           I = I + 1
       Next cb
    End Sub
  4. Teste die Userform, indem du die Checkboxen aktivierst und den Button klickst. Du solltest eine Meldung erhalten, wenn eine Checkbox aktiviert ist.


Häufige Fehler und Lösungen

  • Fehler: Keine Meldung erscheint, wenn Checkbox aktiviert ist.

    • Lösung: Stelle sicher, dass die Namen der Checkboxen exakt mit "CheckBox1", "CheckBox2" usw. übereinstimmen und dass der Code im richtigen CommandButton platziert ist.
  • Fehler: Laufzeitfehler beim Ausführen des Codes.

    • Lösung: Überprüfe, ob alle Checkboxen in der Userform korrekt benannt sind und dass der Code im richtigen Kontext aufgerufen wird.

Alternative Methoden

Wenn du die Checkboxen nicht in einer Schleife abfragen möchtest, kannst du auch jede Checkbox einzeln abfragen. Hier ein Beispiel:

Private Sub CommandButton1_Click()
    If CheckBox1.Value = True Then MsgBox "Checkbox1 ist an!"
    If CheckBox2.Value = True Then MsgBox "Checkbox2 ist an!"
    If CheckBox3.Value = True Then MsgBox "Checkbox3 ist an!"
    If CheckBox4.Value = True Then MsgBox "Checkbox4 ist an!"
    If CheckBox5.Value = True Then MsgBox "Checkbox5 ist an!"
End Sub

Diese Methode ist jedoch weniger elegant und erfordert mehr Codezeilen.


Praktische Beispiele

Ein weiteres Beispiel könnte sein, die Checkboxen zu verwenden, um verschiedene Aktionen auszulösen, basierend auf den ausgewählten Optionen. Hier ein einfaches Beispiel:

Private Sub CommandButton1_Click()
    Dim result As String

    If CheckBox1.Value Then result = result & "Option 1 ausgewählt." & vbCrLf
    If CheckBox2.Value Then result = result & "Option 2 ausgewählt." & vbCrLf
    If CheckBox3.Value Then result = result & "Option 3 ausgewählt." & vbCrLf

    If result = "" Then
        MsgBox "Keine Optionen ausgewählt."
    Else
        MsgBox result
    End If
End Sub

In diesem Code werden die ausgewählten Optionen in einer Meldung zusammengefasst.


Tipps für Profis

  • Verwende Option Explicit: Dies hilft, Tippfehler zu vermeiden, indem alle Variablen deklariert werden müssen.
  • Ereignisgesteuerte Programmierung: Nutze Ereignisse der Checkboxen, um sofortige Aktionen auszulösen, wenn der Benutzer eine Checkbox aktiviert oder deaktiviert.
  • Modularität: Organisiere deinen Code in Subroutinen, um die Lesbarkeit und Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich die Checkboxen in einer Access-Datenbank abfragen? Um in Access Kontrollkästchen abzufragen, kannst du die Me.CheckboxName.Value Eigenschaft in VBA verwenden, ähnlich wie in Excel.

2. Was mache ich, wenn ich mehr als fünf Checkboxen habe? Du kannst die Schleife anpassen, indem du die Anzahl der Checkboxen erhöhst oder die Schleife so einstellst, dass sie alle Controls auf der Userform überprüft.

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