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

Checkbox u. Combobox mit gegens. Einfluss

Forumthread: Checkbox u. Combobox mit gegens. Einfluss

Checkbox u. Combobox mit gegens. Einfluss
16.11.2003 15:49:52
Jens_Pu
Hallo Excelfreunde,

nach langer excelfreien Zeit wollte ich heute wieder mal was machen.
Und schon stehe ich scheinbar wieder auf dem Schlauch.
Mit einer Checkbox möchte ich den Wert einer Combobox löschen.
Umgekehrt soll die Checkbox auch gesetzt werden, wenn sich der CheckboxWert auf Werte <> "" ändert.
Irgendwie bekomme ich das aber so nicht geregelt.
Irgendwelche Tips.


Private Sub CheckBox5_Click()
If CheckBox5.Value = False Then
ComboBox8.Value = ""
End If
End Sub



Private Sub ComboBox8_Change()
If ComboBox8.Value = "" Then
If CheckBox5.Value = True Then CheckBox5.Value = False
Else
If CheckBox5.Value = False Then CheckBox5.Value = True
End If
End Sub


Danke

Gruss Jens
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkbox u. Combobox mit gegens. Einfluss
16.11.2003 16:21:42
Ramses
Hallo

tut mir leid, ich wüsste nicht was daran falsch ist, ausser dass es eine unendliche Schleife erzeugt :-)
Indem du die Checkbox anklickst löst du das Change-Ereignis der Combobox aus und damit wiederum das Click-Ereignis der Checkbox aus.

Das einzige was du machen kannst, ist die Combobox mit dem Exit-Ereignis zu prüfen.


Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If ComboBox1.Value = "" Then
If CheckBox1.Value = True Then CheckBox1.Value = False
Else
If CheckBox1.Value = False Then CheckBox1.Value = True
End If
End Sub


Gruss Rainer
Anzeige
AW: Checkbox u. Combobox mit gegens. Einfluss
16.11.2003 16:35:29
K.Rola
Hallo,

was erwartest du denn als Ergebnis?


Private Sub CheckBox1_Click()
If Not CheckBox1 Then ComboBox1 = ""
End Sub


Private Sub ComboBox1_Change()
If ComboBox1 = "" Then
CheckBox1 = False
Else
CheckBox1 = True
End If
End Sub



K.Rola
Anzeige
AW: Checkbox u. Combobox mit gegens. Einfluss
17.11.2003 16:19:55
Jens_Pu
Hallo Ramses, hallo K.Rola,

vielen Dank für Eure Vorschläge.
Leider klappt es noch nicht so wie gewünscht.

Was ich als Ergebnis erwarte:

In der Combobox ist eine lange Liste hinterlegt, aus der man einen Wert auswählen kann.
der oberste Wert ist der Wert "".
Die Checkbox hat immer dann einen Haken, wenn der Wert in der Combobox NICHT "" ist.
Wenn man nun den Haken wegdrückt, soll die Combobox auf den Wert "" gesetzt, also praktisch "gelöscht" werden. Die Checkbox dient also zum Einen als Anzeige: "Combobox enthält Wert der <> "" ist" und dient gleichzeitig als schneller Rücksetzschalter für die Combobox.

Ist das einigermassen verständlich?

Gruss Jens
Anzeige
AW: Checkbox u. Combobox mit gegens. Einfluss
17.11.2003 17:35:42
K.Rola
Was verstehe ich da nicht, das passiert doch.

Gruß K.Rola
AW: Checkbox u. Combobox mit gegens. Einfluss
17.11.2003 18:03:39
Jens_Pu
Hallo K.Rola,

nicht ganz. Ich hatte die Checkbox und die Combobox mit ControlSource an eine Tabellenblattzelle gebunden. Dann haben die Steuerelemente beim öffnen der UF zwar den richtigen Wert, aber die Funktionalität klappt nicht.
Vermutlich muß ich beim Initialize der UF die Werte vom Tabellenblatt holen und die Steuerelemente entsprechend setzen und beim schließen entsprechend zurückschreiben. Mit ControlSource geht es nicht.

Gruss Jens
Anzeige
AW: Checkbox u. Combobox mit gegens. Einfluss
17.11.2003 22:50:57
Jens_Pu
Hallo K.Rola,

habe es jetzt ohne ControlSource gemacht, wie beschrieben.
Jetzt geht es.
Danke für Deine Unterstützung.

Gruss Jens
;
Anzeige

Infobox / Tutorial

Checkbox und Combobox mit gegenseitigem Einfluss in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und füge eine UserForm hinzu.

  2. Ziehe eine Checkbox und eine Combobox auf die UserForm.

  3. Klicke mit der rechten Maustaste auf die Checkbox und wähle "Code anzeigen".

  4. Füge folgenden VBA-Code ein, um die Checkbox und die Combobox zu verknüpfen:

    Private Sub CheckBox1_Click()
       If Not CheckBox1 Then ComboBox1 = ""
    End Sub
    
    Private Sub ComboBox1_Change()
       If ComboBox1 = "" Then
           CheckBox1 = False
       Else
           CheckBox1 = True
       End If
    End Sub
  5. Schließe den Code-Editor und teste die UserForm, um sicherzustellen, dass die Checkbox den Wert der Combobox korrekt beeinflusst und umgekehrt.


Häufige Fehler und Lösungen

  • Fehler: Unendliche Schleife

    • Lösung: Achte darauf, dass beim Ändern der Checkbox nicht die Change-Ereignis der Combobox ausgelöst wird. Verwende stattdessen das Exit-Ereignis der Combobox:
    Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        If ComboBox1.Value = "" Then
            If CheckBox1.Value = True Then CheckBox1.Value = False
        Else
            If CheckBox1.Value = False Then CheckBox1.Value = True
        End If
    End Sub
  • Fehler: Checkbox und Combobox sind an eine Zelle gebunden

    • Lösung: Vermeide die Verwendung von ControlSource und setze die Werte manuell beim Initialisieren und Schließen der UserForm.

Alternative Methoden

Eine alternative Methode zur Verknüpfung von Checkbox und Combobox ist die Verwendung von Worksheet-Events. Anstatt die UserForm zu verwenden, kannst du die Kontrollen direkt auf einem Arbeitsblatt platzieren und das folgende VBA-Skript verwenden:

Private Sub CheckBox1_Click()
    If Not CheckBox1 Then ComboBox1.Value = ""
End Sub

Private Sub ComboBox1_Change()
    If ComboBox1.Value = "" Then
        CheckBox1.Value = False
    Else
        CheckBox1.Value = True
    End If
End Sub

Diese Methode ist hilfreich, wenn du die Steuerelemente direkt auf dem Arbeitsblatt verwenden möchtest.


Praktische Beispiele

Wenn du eine lange Liste in der Combobox hast, kannst du sie wie folgt dynamisch befüllen:

Private Sub UserForm_Initialize()
    With ComboBox1
        .AddItem "Wert 1"
        .AddItem "Wert 2"
        .AddItem "Wert 3"
        .AddItem ""  ' Leeren Wert hinzufügen
    End With
End Sub

In diesem Beispiel wird die Combobox mit verschiedenen Werten gefüllt, und der leere Wert ermöglicht es, die Checkbox entsprechend zu setzen oder zurückzusetzen.


Tipps für Profis

  • Nutze die ControlSource-Eigenschaft nur, wenn du sicher bist, dass die Funktionalität der Checkbox und Combobox nicht beeinträchtigt wird.
  • Teste deine UserForm gründlich, um sicherzustellen, dass die Interaktionen zwischen Checkbox und Combobox wie gewünscht funktionieren.
  • Überlege, wie du die Benutzererfahrung verbessern kannst, indem du visuelle Hinweise gibst, wenn die Checkbox aktiviert oder deaktiviert wird.

FAQ: Häufige Fragen

1. Frage
Wie kann ich sicherstellen, dass die Checkbox und die Combobox immer synchron sind?
Antwort: Verwende die Change- und Click-Ereignisse beider Steuerelemente, um die Werte direkt zu aktualisieren, wie im Beispiel gezeigt.

2. Frage
Kann ich die Checkbox und die Combobox in einer Excel-Tabelle verwenden?
Antwort: Ja, du kannst die Steuerelemente direkt in einer Tabelle platzieren, aber achte darauf, die Event-Handler entsprechend anzupassen.

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