Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
412to416
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
412to416
412to416
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Combox in Abhängigkeit füllen

Combox in Abhängigkeit füllen
Fabio
Hallo,
mal wieder 'ne 'kluge' Frage...
Auf meinem Userform ist eine Combobox. Wenn ich in der Combobox 2 "ohne" wähle, soll in Combobox 3 nur die Werte "alle" und "200" zur Auswahl stehen(analog bei "mit"). Das funktioniert ja auch. Allerdings nur bei der ersten Auswahl.
Entscheidet man um, also zuerst wählt man in CB2 "ohne" in CB3 z.B. "200" und möchte dann doch in CB2 "mit", wird CB3 nicht aktualisiert.
Wie erreicht man dass nach jeder Änderung, die Combobox3 an die Auswahl von CB2 angepasst wird?

Private Sub UserForm_Initialize()
'ControlSource bei CB2 ist Zelle (B1)
ComboBox2.AddItem "ohne"
ComboBox2.AddItem "mit"
Combobox3.Additem "alle"
If Cells(1, 2) = "ohne" Then
ComboBox3.AddItem "200"
ElseIf Cells(1, 2) = "mit" Then
ComboBox3.AddItem "105"
End If
End Sub

Grüße und Danke
FABIO

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

Betreff
Benutzer
Anzeige
AW: Combox in Abhängigkeit füllen
Ulf
Verleg das Füllen von Combobox3 in das Change-Ereignis von Combobox2.
Ulf
HÄ?
Fabio
Hi Ulf,
Danke für den Tip, aber kannst du das ein bißchen genauer ausführen :-))
AW: HÄ?
Ulf
Eine Combobox hat ein Change- Ereignis, dort platzierst du den
Code zum Füllen der anderen, abhängigen Combobox.
Ulf
Aha...ABER
FABIO
Okay habs jetzt soweit:

Private Sub ComboBox2_Change()
ComboBox3.Clear
ComboBox3.AddItem "alle"
If Cells(1, 2) = "ohne" Then
ComboBox3.AddItem "200"
ElseIf Cells(1, 2) = "mit" Then
ComboBox3.AddItem "105"
ElseIf Cells(1, 2) = "alle" Then
ComboBox3.AddItem "105"
ComboBox3.AddItem "200"
End If
End Sub

(funktioniert so ganz gut!)
Nur noch ein kleines Problem. Wenn in Combobox2 was geändert wird, dann wird die damit verbundene Änderung nicht sofort in CB3 übernommen sondern es muss erst irgendwo anders im Userform ein Steuerelement bedient werden.
Gibt es sowas wie eine "Bestätigen"-Anweisung/Befehl die alle Veränderung in CB2 sofort in CB3 übernimmt?
Anzeige
AW: Aha...ABER
Ulf
Me.Repaint
DoEvents
Ulf
Noch nicht ganz...
Fabio

Private Sub ComboBox2_Change()
ComboBox3.Clear
ComboBox3.AddItem "alle"
If Cells(1, 2) = "ohne" Then
ComboBox3.AddItem "200"
ElseIf Cells(1, 2) = "mit" Then
ComboBox3.AddItem "105"
ElseIf Cells(1, 2) = "alle" Then
ComboBox3.AddItem "105"
ComboBox3.AddItem "200"
End If
Me.Repaint
DoEvents
End Sub

Es ist leider nach wie vor so, dass die CB3 nicht richtig geladen wird. Es ist so dass die Combobox3 immer mit einer 'Verzögerung'geladen wird, d.h. ich wähle :
1. CB2: mit--- CB3:---alle, 105
2. CB3: ohne - CB3:---alle, 105
3. CB2: mit ---CB3:---alle, 200
...
ich habs zur besseren Veranschulichung mal hochgeladen
https://www.herber.de/bbs/user/5278.xls
Anzeige
AW: Noch nicht ganz...
Ulf
Verwemdest du RowSource? Falls ja, nimm das mal weg und schreib die Werte
explizit in die Zelle.
Ulf (mache für heute Schluss)

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige