AW: Doppelte Sätze markieren oder entfernen
20.09.2017 14:33:15
Daniel
Hi
ich gehe mal im Gegensatz zu den bisherigen Antworten davon aus, dass das "X" in Spalte I normalerweise nicht vorhanden ist und die zu löschenden Zeilen aus den bis Spalte H vorhandenen Daten ermittelt werden müssen:
probier mal das.
die zu löschenden Zeilen werden erstmal nur selektiert, damit du prüfen kannst, ob das Makro richtig arbeitet.
Wenns funktioniert, ersetze das .Select durch .EntireRow.Delete
Sub LöschenSpezial()
Dim arr
Dim z As Long
Dim größterAbrMonat As Object
Dim JahrMonatMA As String
Dim rngLösch As Range
Set größterAbrMonat = CreateObject("scripting.dictionary")
arr = Cells(1, 1).CurrentRegion.Value
'--- Größten Abrechnungsmonat für jeden Monat ermitteln
For z = 2 To UBound(arr, 1)
JahrMonatMA = arr(z, 1) & "-" & arr(z, 2) & "-" & arr(z, 3)
If arr(z, 8) > größterAbrMonat(JahrMonatMA) Then größterAbrMonat(JahrMonatMA) = arr(z, 8)
Next
'--- Wenn Zeile nicht zum größten Abrechnungsmonat gehört, zum löschen kennzeichnen.
For z = 2 To UBound(arr, 1)
JahrMonatMA = arr(z, 1) & "-" & arr(z, 2) & "-" & arr(z, 3)
If arr(z, 8)
Gruß Daniel