101053
Das folgende Makro sucht alle doppelten Einträge in einer Liste und markiert diese mit einer Farbe. Die Liste muss dabei nicht sortiert sein, damit funktioniert die Prozedur in jeder unsortierten Liste. Zu Beginn des Makros wird die Startzeile abgefragt, ab der auf doppelte Einträge geprüft werden soll. Alles andere erledigt das Makro selbständig.
Erfassen Sie dieses Makro ist in ein Code-Modul, nicht in ein Tabellenblatt.
Option Explicit
Sub zellen_mit_doppelten_einträgen_markieren()
On Error Resume Next
Dim Spalten As Object
Dim zelle1 As Object
Dim zelle2 As Object
Dim f As Integer
Dim x As Long, i As Long, y As Long, z As Long
Dim eing
f = 0
Set zelle1 = Selection.SpecialCells(xlLastCell).Offset(1, 1)
Set zelle2 = Selection.SpecialCells(xlLastCell)
eing = InputBox("Die Zelle eingeben, ab der geprüft werden soll," & (Chr(13)) & "z.B. A1 oder F6.", "Zellenauswahl")
Range(eing).Select
Set Spalten = ActiveCell.CurrentRegion
eing = ""
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
zelle1 = ActiveCell
ActiveCell.Offset(1).Select
For x = 1 To Spalten.Rows.Count
If ActiveCell.Value = zelle1 Then
If ActiveCell <> "" Then
ActiveCell.Interior.ColorIndex = 5
End If
End If
ActiveCell.Offset(1).Select
Next x
For i = 1 To Spalten.Rows.Count - 1
For z = 1 To Spalten.Rows.Count
ActiveCell.Offset(-1).Select
Next z
f = f + 1
zelle1.Clear
zelle2 = ActiveCell
ActiveCell.Offset(1).Select
For y = 1 To Spalten.Rows.Count
If ActiveCell.Value = zelle2 Then
If ActiveCell <> "" And Selection.Interior.ColorIndex = xlNone Then
ActiveCell.Interior.ColorIndex = 3
End If
End If
ActiveCell.Offset(1).Select
Next y
Next i
zelle2.Clear
'** Ursprungszustand wieder herstellen
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Range("A1").Select
End Sub
Die Beispieldatei können Sie über den folgenden Link herunterladen.