Makro Excel?
Hallo zusammen,
ich versuche gerade, ein Makro zu schreiben (habe noch nicht viel Erfahrung). Ich benötige eine Makro, das alle Zeilen löscht, die kein Duplikat sind, d.h. wenn der Wert in der Spalte „B“ ein Duplikat ist, dann soll diese Zeile beibehalten werden. Ziel ist es, nur die Duplikate zu prüfen und alle anderen Zeilen nicht. Ich kenne die „bedingte Formatierung“, da die Tabellen aber sehr groß sind, wäre es über ein Makro schneller fertig. Kann mir jemand helfen? Vielen Dank vorab!
2 Antworten
Sub NurDuplikateBehalten()
Dim letzteZeile As Long
Dim i As Long
Dim dict As Object
' Dictionary erstellen
Set dict = CreateObject("Scripting.Dictionary")
' Letzte Zeile in Spalte B finden
letzteZeile = Cells(Rows.Count, "B").End(xlUp).Row
' Alle Werte zählen
For i = 1 To letzteZeile
If Not IsEmpty(Cells(i, "B").Value) Then
dict(Cells(i, "B").Value) = dict(Cells(i, "B").Value) + 1
End If
Next i
' Von unten nach oben durchgehen und eindeutige Zeilen löschen
For i = letzteZeile To 1 Step -1
If Not IsEmpty(Cells(i, "B").Value) Then
If dict(Cells(i, "B").Value) = 1 Then
Rows(i).Delete
End If
End If
Next i
MsgBox "Fertig! Nur Duplikate bleiben erhalten.", vbInformation
End Sub
Leider kann ich dir keine Schritt für Schritt Anleitung liefern, da ich ich 90% der Zeit nicht mit der Desktop Version arbeite sondern mit der Web Variante meiner Lizenz und hier fehlen leider einige Optionen, aber es gibt im Reiter Start bereits eine fertige Variante um Duplikate zu erkennen, das funktioniert auch über 5000 Zeilen.
Vielleicht kann sich hierzu mal einer der üblichen verdächtigen melden, die Desktop Version nutzen.