in einem Tabellenblatt "PLZ" befinden sich u.a. ca. 2000 Datensätze mit ca. bis zu 10 verschiedenen Postleitzahlen (Spalte B); Wie kann der untenstehende Code geändert werden, wenn ich einerseits die vorkommenden Postleitzahlen in der Listbox mit Multiselect nur einmal angezeigt bekommen möchte (das bewirkt bereits der Code), dann aber alle jeweils dazugehörigen Lieferantennummern (Spalte A) in Spalte C kopiert werden sollen? Schön wäre, wenn die Postleitzahlen innerhalb der Listbox chronologisch sortiert werden könnten. Danke schon jetzt wieder Allen für die Rückmeldung.
Herzliche Grüße
Wolfgang
Option Explicit
Private Sub UserForm_Activate()
Dim col As New Collection
Dim lRow As Long
lRow = 1
On Error Resume Next
Do Until IsEmpty(Cells(lRow, 1))
col.Add CStr(Cells(lRow, 1).Value), CStr(Cells(lRow, 1).Value)
lRow = lRow + 1
Loop
On Error GoTo 0
For lRow = 1 To col.Count
ListBox1.AddItem col(lRow)
Next lRow
End Sub
Private Sub CommandButton1_Click()
Dim iLiBo As Integer
Dim iZeile As Integer
Range("C1:C" & Range("C65536").End(xlUp).Row).ClearContents
With ListBox1
For iLiBo = 0 To .ListCount - 1
If .Selected(iLiBo) Then
iZeile = iZeile + 1
Cells(iZeile, 3).Value = .List(iLiBo) ' in Spalte C untereinander
End If
Next iLiBo
End With
End Sub