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.