Mit diesem Makro werden alle nicht doppelten Daten aus Spalte A in Spalte B geschrieben.
Jeder Wert wird also maximal einmal in Spalte B geschrieben, egal, wie oft er in Spalte A vorhanden ist.
Die Unikate werden sozusagen extrahiert und in Spalte B geschrieben.
Sub ListeUnikate()
Dim Liste As New Collection
Dim i As Integer
Dim j As Integer
Dim Gefunden As Boolean
Liste.Add [A1]
For i = 2 To 20 'oder so viele, wie Du brauchst
Gefunden = False
For j = 1 To Liste.Count
If Cells(i, 1) = Liste(j) Then Gefunden = True
Next j
If Not Gefunden Then Liste.Add Cells(i, 1)
Next i
'Zu Testzwecken
For i = 1 To Liste.Count
Cells(i, 2) = Liste(i)
Next i
End Sub
Herr Kühnlein hat den Code erweitert. Nun wird in Spalte C protokolliert, welche Daten, wie oft in Spalte A vorhanden sind. Eine super Sache!
Sub ListeUnikate_mit_zähler() Dim n As Integer Dim i As Integer Dim j As Integer Dim Gefunden As Boolean [B1] = [A1] [C1] = 1 n = 1 For i = 2 To 9 'oder so viele wie gewünscht Gefunden = False For j = 1 To n If Cells(i, 1) = Cells(j, 2) Then Gefunden = True Cells(j, 3) = Cells(j, 3) + 1 End If Next j If Not Gefunden Then n = n + 1 Cells(n, 2) = Cells(i, 1) Cells(n, 3) = 1 End If Next i End Sub
Die Veröffentlichung wurde frundlicherweise von Klaus Kühnlein genehmigt.