Hi Kerstin,
probiers mal so, Namen der Listbox musste noch anpassen.
Sub kerstin()
Set wks = Worksheets(„Tabelle1“)
With wks.ListBox1
.ColumnCount = 2
.ColumnWidths = „4cm;5cm“
.Clear
For n = 1 To wks.Range(„A65536“).End(xlUp).Row
Hier müßte es evtl. „B65536“, da ja die Werte aus Spalte 2 und 4 eingelesen werden sollen
If wks.Cells(n, 4) „“ Then
.AddItem
.List(z, 0) = wks.Cells(n, 2)
.List(z, 1) = wks.Cells(n, 4)
z = z + 1
End If
Next n
End With
Set wks = Nothing
End SubGruß
Reinhard
Hallo Kirstin, hallo Reinhard,
eine Alternative ist die Daten erst in ein Feld einzulesen und dann an die ListBox zu übergeben. Hier wird die Auswahlliste jedesmal aktualisiert, wenn die Liste den Fokus bekommt (angewählt wird).
Private Sub ListBox2\_GotFocus()
Dim ListboxData()
Zeile = 1
ZeileListe = 0
'Feldgröße wird angepaßt an Zahl der Zeilen mit Werten in Spalte D
ReDim ListboxData(Application.WorksheetFunction.CountA(Range("D:smiley:")) - 1, 1)
Do While Cells(Zeile, 2).Value ""
'nur aufnehmen, wenn in Spalte 4 etwas steht!
If Cells(Zeile, 4).Value "" Then
ListboxData(ZeileListe, 0) = Cells(Zeile, 2).Value
ListboxData(ZeileListe, 1) = Cells(Zeile, 4).Value
ZeileListe = ZeileListe + 1
End If
Zeile = Zeile + 1
Loop
ListBox2.List() = ListboxData
ReDim ListboxData(0, 0)
End Sub
Gruß
Franz