Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
232to236
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
232to236
232to236
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

UserForm: Combobox bedingte Einträge in Dropdown

UserForm: Combobox bedingte Einträge in Dropdown
18.03.2003 19:10:46
Christoph
Hallo allerseits,
ihr habt mir zu diesem Thema schon mal geholfen, aber mein Problem gestaltet sich mittlerweile etwas anders. Im Archiv konnte ich bislang auch keine passende Antwort finden.

Folgendes Problem:
Ich habe zwei Comboboxes. In der ersten sollen die Werte aus Tabelle1, SpalteA im Dropdown erscheinen. In Spalte A kommen verschiedene Werte mehrfach vor. Des weiteren gibt es hier auch Leerzellen. Im Dropdown von ComboBox1 sollen die Werte jedoch nur einmal erscheinen und die Leerzellen sollen ignoriert werden.

Soweit, sogut, das funktioniert. (siehe untenstehenden Code)

Jetzt zu ComboBox2:
Für jede Auswahl in ComboBox1 sollen in ComboBox2 die passenden Werte aus Spalte B im Dropdown zur Auswahl stehen.
Mit Case und SourceRow komme ich hier nicht weiter, denn ich kann die Anzahl der Cases und den SourceRow-Bereich nicht vorhersagen. Die Anzahl der Einträge in Spalte A und B können sich ändern. Mit AddItem bin ich an der Stelle schlichtweg überfordert. (Das Problem sitzt mal wieder zwischen der Tastatur und dem Stuhl)

Bsp:
SpalteA--------SpalteB

A-------------------O1
A-------------------O2
A-------------------O3
A-------------------O4

B-------------------U1
B-------------------U2

C-------------------E1

X-------------------F1
X-------------------F2


Hier mein funktionierender Code für die Auswahl in ComboBox1:

Option Explicit

Private Sub UserForm_Initialize()

Dim c As Long
Dim i As Long
Dim r%

r = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row

With Me

For c = 1 To r
i = c + 1
If Sheets("Tabelle1").Cells(i, 1) <> Sheets("Tabelle1").Cells(c, 1) _
And Sheets("Tabelle1").Cells(i, 1) <> "" Then
With .ComboBox1
.AddItem Sheets("Tabelle1").Cells(i, 1)
End With
End If
Next c
End With

' Die erste Zeile wird auf diese Art nicht als Item erfasst. Dies ist hier gewollt,
' da in der ersten Zeile die Spalten-Überschrift steht.

End Sub

und wie geht's jetzt weiter für ComboBox2???


Kann mir jemand helfen?
ich wäre euch sehr dankbar - ich sitz' schon den halben Tag an dem Problem

Gruß
Christoph



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

Betreff
Datum
Anwender
Anzeige
Re: UserForm: Combobox bedingte Einträge in Dropdown
18.03.2003 19:57:55
Klaus-Dieter
Hallo Christoph,

mit diesem Quelltext geht es:


Option Explicit
Private Sub ComboBox1_Change()
Dim ze As String
Dim r As Integer
ComboBox2.Clear
ze = ComboBox1.Text
For r = 2 To Range("A65536").End(xlUp).Row
If Sheets("Tabelle1").Cells(r, 1) = ze Then
With ComboBox2
.AddItem Sheets("Tabelle1").Cells(r, 2)
End With
End If
Next r
End Sub

Code eingefügt mit: Excel Code Jeanie

Du mußt ihn mit der ComboBox1 verbinden, da er durch das Change-Ereignis dieser ComboBox ausgelöst wird.

Gruß Klaus-Dieter
Klaus-Dieter's Excel und VBA Seite

Anzeige
Super, merci
18.03.2003 20:14:41
Christoph
Hi Klaus-Dieter,
Das ist genial!!!

Was mir noch auffällt:
ist "Range("A65536").End(xlUp).Row" genauso gut wie "Cells(Rows.Count, 1).End(xlUp).Row" ?

"Row.Count" ist ja die Anzahl der Zeilen, insofern dürfte es keinen Unterschied machen.

Ist deine Variante evt. schneller?

Danke nochmals
Christoph

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige