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

Forumthread: Userform-wie Checkbox benutzen?

Userform-wie Checkbox benutzen?
18.01.2017 12:19:44
Peter
Liebe Experten,
ich bitte Euch m Hilfe.
Heute habe ich meine erste Userform namens "Auswahl" erstellt.
Wenn die Checkbox aktiviert wird, dann soll im Modul eine Abfrage erfolgen, z.B.
If Checkbox1 aktiv then
end if
Wie lautet die VBA Synatx dazu?
Für Eure Hilfe bedanke ich mich voraus.
LG,Peter
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ohne aktiv.....owT
18.01.2017 12:50:46
Mullit
AW: Userform-wie Checkbox benutzen?
18.01.2017 14:50:18
Frank
Hallo Peter!
If CheckBox1 = True Then
.....
End If
Konnte ich helfen?
Gruß Frank H.
If Checkbox1 Then - genügt doch-oder? oT
18.01.2017 15:11:13
Helmut
Anzeige
AW: If Checkbox1 Then - genügt doch-oder? oT
18.01.2017 15:17:37
Daniel
Sicherlich genügt es, aber nur wenn man die Hintergründe kennt, welche du dann dazu erklären müsstest.
machst du das?
Gruß Daniel
..versteh nicht, was Du meinst...
18.01.2017 15:34:05
Helmut
Hallo,
meine Antwort bezog sich auf die True Abfrage ob die notwendig ist.
If Checkbox1 Then
.. mach was...
End If
oder muss man
If Checkbox1=True Then
..mach was..
End If
..schreiben?
Gruß Helmut
Anzeige
AW: ..versteh nicht, was Du meinst...
18.01.2017 16:32:08
Peter
Hallo Zusammen,
mein Code sieht wie folgt aus. Leider erhalte ich die Fehlermeldung Fehler beim Kompilieren. Methode oder Datenobjekt nicht gefunden

If Auswahl.CheckBox1_Q1 = True Then
ADatumQ1 = CDate("01.01." & aktJahr)
EDatumQ1 = CDate("31.03." & aktJahr)
End If
Wo liegt mein Fehler. Das Formular heißt "Auswahl"
LG, Peter
Anzeige
AW: ..versteh nicht, was Du meinst...
18.01.2017 16:54:06
Peter
Hallo Zusammen,
vielen Dank für Eure hilfreichen Antworten. Fehler gefunden: habe den Namen der Checkboxen falsch geschrieben.
Die Abfrage sieht jetzt so aus

If Auswahl.CheckBox1_Q1 = True Then
ADatumQ = CDate("01.01." & aktJahr)
EDatumQ = CDate("31.03." & aktJahr)
End If
If Auswahl.CheckBox2_Q2 = True Then
ADatumQ = CDate("01.04." & aktJahr)
EDatumQ = CDate("30.06." & aktJahr)
End If
If Auswahl.CheckBox3_Q3 = True Then
ADatumQ = CDate("01.07." & aktJahr)
EDatumQ = CDate("30.09." & aktJahr)
End If
If Auswahl.CheckBox4_Q4 = True Then
ADatumQ = CDate("01.10." & aktJahr)
EDatumQ = CDate("31.12." & aktJahr)
End If
LG, Peter
Anzeige
AW: ..versteh nicht, was Du meinst...
19.01.2017 16:07:12
Daniel
Hi
vollständig müsste es lauten:
If Checkbox1.Value = True Then
das ".Value" darf man weglassen, weil .Value die Standard-Eigenschaft in VBA ist und automatisch immer .Value eingesetzt wird, wenn du nur das Objekt(Checkbox1) ohne Eigenschaft angibst, aber ein Eigenschaftswert benötigt wird.
das " = True" kann man weglassen, weil der .Value-Wert einer Checkbox ja schon ein Boolscher Wert (True/False) ist daher dieser nicht erst über den Vergleich mit "=" erzeugt werden muss.
Daher reicht auch If Checkbox1 Then
wobei die erste Variante besser verständlich ist, wenn man die genannten Hintergründe nicht kennt.
Gruß Daniel
Anzeige
OK, Danke :-) oT
20.01.2017 09:05:57
Helmut
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Userform und Checkboxen in VBA richtig nutzen


Schritt-für-Schritt-Anleitung

  1. Erstelle eine Userform: Öffne den VBA-Editor (Alt + F11), füge eine neue Userform hinzu und nenne sie z.B. "Auswahl".

  2. Füge Checkboxen hinzu: Platziere mehrere Checkboxen auf der Userform. Benenne diese beispielsweise CheckBox1_Q1, CheckBox2_Q2, etc.

  3. Schreibe den VBA-Code: Füge im Code-Bereich der Userform den folgenden Code hinzu, um auf die Checkboxen zuzugreifen:

    Private Sub CommandButton1_Click()
       If CheckBox1_Q1.Value = True Then
           ' Deine Logik hier
       End If
    
       If CheckBox2_Q2.Value = True Then
           ' Deine Logik hier
       End If
    End Sub
  4. Teste die Userform: Starte die Userform und teste, ob die Checkboxen wie gewünscht funktionieren.


Häufige Fehler und Lösungen

  • Fehlermeldung: Methode oder Datenobjekt nicht gefunden: Überprüfe den Namen der Checkboxen in deinem Code. Achte darauf, dass sie genau mit den Namen übereinstimmen, die in der Userform verwendet werden.

  • Abfrage funktioniert nicht: Stelle sicher, dass du .Value für die Abfrage verwendest, wenn du auf den Status der Checkbox zugreifst. Du kannst auch einfach If CheckBox1_Q1 Then verwenden, da .Value die Standard-Eigenschaft ist.


Alternative Methoden

  • For Each Schleife: Wenn du mehrere Checkboxen in einer Userform hast, kannst du auch eine Schleife verwenden, um alle Checkboxen zu überprüfen:

    Dim ctrl As Control
    For Each ctrl In Me.Controls
       If TypeName(ctrl) = "CheckBox" Then
           If ctrl.Value = True Then
               ' Deine Logik hier
           End If
       End If
    Next ctrl
  • Verwendung von OptionButtons: Wenn du nur eine Auswahl ermöglichen möchtest, kannst du auch OptionButtons anstelle von Checkboxes verwenden.


Praktische Beispiele

  • Datum festlegen: Wenn eine Checkbox aktiviert wird, kannst du das folgende Beispiel verwenden, um ein Datum zu setzen:

    If CheckBox1_Q1.Value = True Then
       ADatumQ1 = CDate("01.01." & aktJahr)
       EDatumQ1 = CDate("31.03." & aktJahr)
    End If
  • Zahlungen überprüfen: Du kannst Checkboxen nutzen, um verschiedene Zahlungsoptionen auszuwählen:

    If CheckBox1.Value Then
       ' Zahlung über Kreditkarte
    ElseIf CheckBox2.Value Then
       ' Zahlung über PayPal
    End If

Tipps für Profis

  • Benennungskonventionen: Achte auf konsistente und klare Namen für deine Checkboxen, um Verwirrung zu vermeiden.
  • Code-Dokumentation: Kommentiere deinen Code, damit du dir später leichter tun wirst, die Logik nachzuvollziehen.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Probleme beim Zugriff auf Checkboxen zu lösen.

FAQ: Häufige Fragen

1. Muss ich .Value immer verwenden?
Nein, da .Value die Standard-Eigenschaft ist, kannst du auch einfach If CheckBox1 Then schreiben.

2. Was ist der Unterschied zwischen Checkboxen und OptionButtons?
Checkboxen erlauben mehrere Auswahlen, während OptionButtons nur eine Auswahl aus einer Gruppe zulassen.

3. Wie kann ich den Status einer Checkbox abfragen?
Du kannst den Status einer Checkbox mit If CheckBox1.Value = True Then oder einfach If CheckBox1 Then abfragen.

4. Wie kann ich alle Checkboxen zurücksetzen?
Du kannst eine Schleife verwenden, um alle Checkboxen in der Userform zurückzusetzen:

Dim ctrl As Control
For Each ctrl In Me.Controls
    If TypeName(ctrl) = "CheckBox" Then
        ctrl.Value = False
    End If
Next ctrl

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige