4.1k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)
Hallo,

mit
ActiveSheet.Range("A1:C100").RemoveDuplicates Columns:=Array(1,2), Header:=xlYes
kann ich Duplikate löschen.
Gibt es diese Methode auch um ggf. Duplikate nur zu kennzeichnen/formatieren/zählen usw. Habe in den Hilfen nichts weiter gefunden.
Gruß Andreas

18 Antworten

0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Andreas,

meinst du vielleicht so etwas:


Sub MehrfacheMarkieren()
Dim rngZelle As Range
For Each rngZelle In ActiveSheet.UsedRange
If Application.CountIf(ActiveSheet.UsedRange, rngZelle) > 1 Then rngZelle.Interior.Color = 255
Next rngZelle
End Sub


Damit werden alle mehrfach vorkommenden Inhalte mit roter Füllfarbe markiert.
Wenn es nur doppelte betreffen soll, dann müsstest du > 1 ändern in = 2

Bis später,
Karin
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo Karin,

genau das meinte ich!! Vielen Dank für deine Antwort - hat mir sehr geholfen.
Gruß Andreas
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo Karin,
läßt sich dein Code ggf. noch so modifizieren dass er anstelle einzelner Zellen auch Zellkombinationen der Form Range(Cells(i,1),cells(i,4)) (1<=i<=10) auf mehrfaches Vorkommen in einem Sheet prüft?
Gruß Andreas
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Andreas,

wie meinst du das - soll das immer nur für eine Zeile geprüft werden und das in einer Schleife von 1 bis 10?

Bis später,
Karin
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hi Karin,
in einer Tabelle sollen alle die Datensätze markiert werden, deren Zellinhalte in den ersten 4 Spalten mindestens ein oder auch mehrere Duplikate haben. Ggf. muss dies in einer Schleife reihenweise geprüft werden, wenn es nicht auch anders geht.
Gruß Andreas
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Andreas,

muss es denn unbedingt VBA sein?
Das ist doch mit der Bedingten Formatierung mindestens genau so einfach.

Anbei ein Beispiel

Gruß
Rainer
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo Rainer,
danke erst einmal für die Formel. Nur VBA wäre schon nicht schlecht, weil ich diese Daten in einem Programm temporär von einer Berechnung "ausblenden" bzw. nicht berücksichtigen will und später wieder "aktivieren" will. Ich müsste das Programm sonst unterbrechen und manuell die Formatierung machen...
Gruß
Andreas
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Andreas,

...war nur ein Vorschlag.

Dann will ich Karin nicht weiter ins Handwerk pfuschen.

Gruß
Rainer
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Andreas,

vielleicht so:


Sub MehrfacheMarkieren()
Dim rngZelle As Range
Dim lngZeile As Long
For lngZeile = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
For Each rngZelle In Range(Cells(lngZeile, 1), Cells(lngZeile, 4))
If Application.CountIf(Range(Cells(lngZeile, 1), Cells(lngZeile, 4)), rngZelle.Value) > 1 Then
Range(Cells(lngZeile, 1), Cells(lngZeile, 4)).Interior.Color = 255
Exit For
End If
Next rngZelle
Next lngZeile
End Sub


Bis später,
Karin
0 Punkte
Beantwortet von
wenn du dir immer alles von andren vormachen läßt werden deine eigenen vba kenntnisse verkümmern
...