AW: Label in Abh. von Combobox bei Autofilter
01.12.2012 11:24:06
Combobox
Hallo Gegga,
sollte etwa so funktionieren.
Dim Bereich_CB_LIEF_1
Dim zelle_CB_LIEF_1 As Range
Set Bereich_CB_LIEF_1 = [LIEFERANTEN] ' = SHEET LIEFERANTEN SPALTE A ZEILE 3-50
For Each zelle_CB_LIEF_1 In Bereich_CB_LIEF_1
If zelle_CB_LIEF_1 "" And zelle_CB_LIEF_1.EntireRow.Hidden = False Then
With UF_START.CB_LIEF_1
.AddItem zelle_CB_LIEF_1.Value
'in die 2. Spalte (Zählung beginnt bei 0!) der Listbox den Wert _
3 Spalten rechts von zelle_CB_LIEF_1 eintragen
.List(.ListCount - 1, 1) = zelle_CB_LIEF_1.Offset(0, 3).Value
End With
End If
Next
Bei sehr langen Listen geht es sehr viel schneller, wenn man die Datenliste über ein Datenarray erstellt und dieses dann als Ergebnis der List-Eigenschaft der Listbox/Combibox zuweist.
nachfolgend (ungetestet) auf dein Problem zugeschnitten ein Beispiel.
Gruß
Franz
Dim Bereich_CB_LIEF_1, arrListe(), lngCount As Long
Dim zelle_CB_LIEF_1 As Range
Set Bereich_CB_LIEF_1 = [LIEFERANTEN] ' = SHEET LIEFERANTEN SPALTE A ZEILE 3-50
ReDim arrListe(0 To 1, 1 To Bereich_CB_LIEF_1.Rows.Count)
lngCount = 0
For Each zelle_CB_LIEF_1 In Bereich_CB_LIEF_1
If zelle_CB_LIEF_1 "" And zelle_CB_LIEF_1.EntireRow.Hidden = False Then
lngCount = lngCount + 1
arrListe(0,lngCount) = zelle_CB_LIEF_1.Value
arrListe(1,lngCount) = zelle_CB_LIEF_1.Offset(0, 3).Value
End If
Next
If lngCount > 0 Then
ReDim arrListe(0 To 1, 1 To lngCount)
UF_START.CB_LIEF_1.List = Application.WorksheetFunction.Transpose(arrListe)
End If
Erase arrListe