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

Forumthread: Wenn ComboBox leer dann

Wenn ComboBox leer dann
René
Hallo liebe Excelgemeinde,
ich möchte erreichen das eine ComboBox eine bestimmte Auswahl anzeigt wenn eine andere ComboBox leer ist . Der Code sieht so aus
If ComboBox33.Value = "" Then ComboBox13.RowSource = "Listen!Q1"
Leider funktioniert das aber nicht.
Was mache ich falsch?
MfG René
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wenn ComboBox leer dann
16.05.2011 14:46:30
René

Private Sub ComboBox33_Change()
If ComboBox33.ListIndex > -1 Then ComboBox13.RowSource = "Listen!Q1"
End Sub
Hier würde die ComboBox13 gefüllt werden wenn ComboBox33 gefüllt ist.
Ich möchte es aber genau umgekehrt. Wenn ComboBox33 nicht gefüllt wurde soll in ComboBox13 stehen "Bitte erst ComboBox 33 Auswahl treffen!"
Der Text "Bitte erst ComboBox 33 Auswahl treffen!" steht in Listen!Q1
Habt ihr bitte einen Tipp für mich?
MfG René
Anzeige
AW: Wenn ComboBox leer dann
16.05.2011 15:05:06
oberschlumpf
Hi René
Versuch mal (ungetestet):

Private Sub ComboBox33_Change()
If ComboBox33.ListIndex = -1 Then ComboBox13.Text = "Bitte erst ComboBox 33 Auswahl treffen!"
End Sub

Hilfts?
Ciao
Thorsten
AW: Wenn ComboBox leer dann
16.05.2011 15:13:25
René
Hallo Thorsten,
funktioniert im Excel2010 leider nicht. Habe es probiert. Trotzdem Danke an Dich. Vielleicht habt ihr ja noch eine Idee
MfG René
Anzeige
AW: Wenn ComboBox leer dann
16.05.2011 15:13:14
fcs
Hallo René,
evtl. so. Dann wird bei Anzeige des Userforms Combobox13 ggf. auf diesen Wert gesetzt.
Private Sub ComboBox33_Change()
If ComboBox33.Value = "" Then
ComboBox13.Value = Worksheets("Listen").Range("Q1")
End If
End Sub
Private Sub UserForm_Activate()
If ComboBox33.Value = "" Then
ComboBox13.Value = Worksheets("Listen").Range("Q1")
End If
End Sub

Die Eigenschaft "MatchRequired" der Combobox13 darf dann nicht auf True eingestellt sein!!
Gruß
Franz
Anzeige
AW: Wenn ComboBox leer dann
16.05.2011 15:20:16
René
Hallo Franz,
das funktioniert leider auch nicht. Hm? Grübel?
MfG René
AW: Wenn ComboBox leer dann
16.05.2011 15:57:40
fcs
Hallo René,
Ich hatte meine Variante in einem kleinen UF getestet - da funktioniert es.
Wenn für die Combobox13 auch Ereignismakros definiert sind, dann kann es natürlich noch andere Effekte geben. Das kann man dann ggf. nur durch komplexere Prüfroutinen umgehen.
Evtl. für Combobox13 unter den Eigenschaften für "Value" den Wert fest auf den Text setzen, dann sollte zumindest beim Öffnen des Userforms dieser Text angezeigt werden.
Gruß
Franz
Anzeige
AW: Wenn ComboBox leer dann
17.05.2011 10:43:11
René
Hallo Franz,
ist geklärt, es lang an meiner UserForm.
Danke noch mal an Dich
MfG René
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

ComboBox in Excel: Wenn leer, dann spezifische Auswahl anzeigen


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Wähle Deine UserForm aus: Klicke im Projekt-Explorer auf die UserForm, die die ComboBoxen enthält.

  3. Füge den folgenden Code in die UserForm ein:

    Private Sub ComboBox33_Change()
       If ComboBox33.Value = "" Then
           ComboBox13.Value = Worksheets("Listen").Range("Q1")
       End If
    End Sub
    
    Private Sub UserForm_Activate()
       If ComboBox33.Value = "" Then
           ComboBox13.Value = Worksheets("Listen").Range("Q1")
       End If
    End Sub

    Hierbei wird ComboBox13 mit dem Wert aus Listen!Q1 gefüllt, wenn ComboBox33 leer ist.

  4. Setze die Eigenschaften: Stelle sicher, dass die MatchRequired-Eigenschaft für ComboBox13 auf False gesetzt ist, damit die ComboBox einen leeren Wert akzeptiert.

  5. Teste die Funktionalität: Starte die UserForm und überprüfe, ob der Text aus Q1 angezeigt wird, wenn ComboBox33 leer ist.


Häufige Fehler und Lösungen

  • Fehler: ComboBox13 zeigt keinen Wert an.

    • Lösung: Stelle sicher, dass die MatchRequired-Eigenschaft auf False gesetzt ist. Prüfe auch den Bereich Listen!Q1.
  • Fehler: Der Code wird nicht ausgeführt.

    • Lösung: Überprüfe, ob die ComboBox-Ereignisse korrekt verknüpft sind. Stelle sicher, dass der Code im richtigen UserForm-Modul steht.

Alternative Methoden

Wenn die oben genannte Methode nicht funktioniert, kannst Du auch folgende Alternativen ausprobieren:

  • Mit einer If...Then-Abfrage:

    Private Sub ComboBox33_Change()
      If ComboBox33.ListIndex = -1 Then
          ComboBox13.Text = "Bitte erst ComboBox 33 Auswahl treffen!"
      End If
    End Sub

    Diese Methode zeigt einen Hinweistext an, wenn keine Auswahl getroffen wurde.

  • Verwendung von ComboBox.Enabled: Du kannst die ComboBox so einstellen, dass sie deaktiviert wird, bis eine Auswahl in der ersten ComboBox getroffen wurde.


Praktische Beispiele

  1. Einfaches Beispiel: In ComboBox33 wählst Du einen Namen aus. Wenn die Auswahl entfernt wird, zeigt ComboBox13 den Text "Bitte erst ComboBox 33 Auswahl treffen!" an.

  2. Erweiterte Logik: Wenn Du mehrere ComboBoxen hast, kannst Du die Logik so erweitern, dass sie auf andere ComboBoxen reagiert, indem Du mehrere If...Then-Abfragen verwendest.


Tipps für Profis

  • Nutze Debug.Print, um Fehler im Code zu finden.

  • Wenn Du UserForms erstellst, denke daran, die Benutzeroberfläche übersichtlich und intuitiv zu gestalten.

  • Verwende die ListIndex-Eigenschaft, um schnell zu überprüfen, ob eine Auswahl in einer ComboBox getroffen wurde.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die ComboBox nur bestimmte Werte akzeptiert? Du kannst die MatchRequired-Eigenschaft auf True setzen, um sicherzustellen, dass nur zulässige Werte ausgewählt werden können.

2. Was kann ich tun, wenn mein Code nicht funktioniert? Überprüfe, ob der Code im richtigen Modul platziert ist und ob die Eigenschaften der ComboBoxen korrekt eingestellt sind. Debugge den Code, um festzustellen, wo der Fehler liegen könnte.

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