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.