Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
544to548
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
544to548
544to548
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppelte Einträge löschen, und farblich markieren

Doppelte Einträge löschen, und farblich markieren
13.01.2005 10:07:21
Carsten
Mahlzeit!!
Ich hab ein kleines Problem, und hoffe auf Eure fachmännische Hilfe:
-Ausgangsmaterial ist eine Adressdatei in Excel 2003
- Doppelte bzw. 3-fach vorkommende Einträge sollen bis auf einen gelöscht werden
- der übrig gebliebene Eintrag soll farblich markiert werden
- das ganze sollte automatisch ablaufen. D.h. bei einem Neueintrag am Ende der Liste soll diese nach z.B. Spalte B sortiert werden und o.g. Prüfung stattfinden. (oder anders herum)
Über "Spezial- oder Autofilter" funktioniert das ganze leider nicht.
Auch mit Hilfe von Daten ... Gültigkeit ... Vergleich stellt sich nicht das gewünscht Ergebnis ein.
Ich werde wohl nicht drum herum kommen, das ganze in vba zu machen.
Da meine Kentnisse etwas begrenzt sind, setze ich ganz auf euch.
Vielen Dank im Voraus!!!!
MfG Carsten
AW: Doppelte Einträge löschen, und farblich markieren
WernerB.
Hallo Carsten,
das nachstehende Makro gehört in das betreffende Tabellenblatt-Modul.
Es wird nach jeder Änderung in der Spalte "C" automatisch ausgeführt.
Den zu behandelnden Bereich – den ich mangels hellseherischer Fähigkeiten leider nicht kenne – musst Du ggf. noch anpassen.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim laR As Long, i As Long
If Target.Column <> 3 Then Exit Sub
laR = Cells(Rows.Count, 2).End(xlUp).Row
Range("A1:C" & laR).Sort Key1:=Range("B1"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
For i = laR To 2 Step -1
If Cells(i, 2).Value = Cells(i - 1, 2).Value Then
Rows(i).Delete Shift:=xlUp
Cells(i - 1, 2).Interior.ColorIndex = 6
End If
Next i
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: Doppelte Einträge löschen, und farblich markieren
Carsten
Hallo Werner,
ich hatte heute ein bissel mehr Zeit zum Testen.
Das Programm funktioniert leider nicht ganz richtig.
Es werden mir einfach viel zu viele Daten gelöscht, und ich finde den Fehler nicht.
Vielleicht hab ich mich falsch ausgedrückt:
Es handelt sich um eine Adressdatei, bei der doppelte Kunden rausgeworfen werden und diese gleichzeitig markiert werden sollen.
- Spalte A: Anrede
- Spalte B: Vorname (kommt nicht immmer vor. Also evtl. leere Zelle)
- Spalte C: Nachname
- Spalte D: Firma (nach dieser Zelle soll selektiert !!UND!! sortiert werden)
- Spalte E: Anschrift
- Spalte F: PLZ (fehlt auch ab und zu)
- Spalte G: Tel.
- ...bis Spalte K
Es ist schon fast egal, bei Änderung welcher Zelle das Programm startet.
Das hab ich ins worksheet eingespeist:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim laR As Long, i As Long
If Target.Column <> 4 Then Exit Sub
laR = Cells(Rows.Count, 2).End(xlUp).Row
Range("A2:K" & laR).Sort Key1:=Range("D2"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
For i = laR To 2 Step -1
If Cells(i, 2).Value = Cells(i - 1, 2).Value Then
Rows(i).Delete Shift:=xlUp
Cells(i - 1, 2).Interior.ColorIndex = 6
End If
Next i
End Sub

Das Problem kann gar nicht so gross sein, aber für mich ist´s einfach unsichtbar.
MfG
Carsten
Anzeige
AW: Doppelte Einträge löschen, und farblich markieren
Carsten
Hallo Werner,
vielen, vielen Dank für Deine schnelle Antwort.
Funktioniert prima!!!!
Der Bereich der gefiltert werden soll ist von A-K und von Zeile 2-unendlich.
In welcher Zeile kann ich diesen Bereich denn ändern.
Und was muss ich verändern, damit alles nicht nach Spalte C sondern nach einer anderen Spalte geordnet werden soll.
AW: Doppelte Einträge löschen, und farblich markieren
WernerB.
Hallo Carsten,
den zu bearbeitenden Bereich habe ich angepasst.
Das Makro wird jetzt gestartet, wenn in der Spalte "K" eine Änderung bzw. ein Neueintrag erfolgt.
Sortiert wird nach Spalte "B"; das war auch in der ersten Version so eingestellt.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim laR As Long, i As Long
If Target.Column <> 11 Then Exit Sub
laR = Cells(Rows.Count, 2).End(xlUp).Row
Range("A2:K" & laR).Sort Key1:=Range("B2"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
For i = laR To 2 Step -1
If Cells(i, 2).Value = Cells(i - 1, 2).Value Then
Rows(i).Delete Shift:=xlUp
Cells(i - 1, 2).Interior.ColorIndex = 6
End If
Next i
End Sub

Gruß
WernerB.
Anzeige
AW: Doppelte Einträge löschen, und farblich markieren
Carsten
Hallo Werner,
das Makro sollte nicht starten, wenn in Spalte K eine Änderung erfolgt.
Ich habe Daten von Spalte A bis K. Aber ich kann´s ja selber ändern, indem ich die beiden Lösungen miteinander vergleiche.
Die Zeile 3
"If Target.Column 11 Then Exit Sub"
gibt ja an, wann das Programm ausgeführt werden soll. "11" steht dann ja für Spalte "K".
Die Zeile 5
Range("A1:C" & laR).Sort Key1:=Range("B1"), Order1:=xlAscending
gibt anscheinend an, nach welcher Spalte ("Key1:=Range("B1")) sortiert werden soll.
Werde genau dies mal morgen mal ausprobieren. Jetzt muss ich erst mal zum Kunden.
Nochmals vielen, vielen Dank
MfG
Carsten
Anzeige
AW: Doppelte Einträge löschen, und farblich markieren
Carsten
Hallo Werner,
ich hatte heute ein bissel mehr Zeit zum Testen.
Das Programm funktioniert leider nicht ganz richtig.
Es werden mir einfach viel zu viele Daten gelöscht, und ich finde den Fehler nicht.
Vielleicht hab ich mich falsch ausgedrückt:
Es handelt sich um eine Adressdatei, bei der doppelte Kunden rausgeworfen werden und diese gleichzeitig markiert werden sollen.
- Spalte A: Anrede
- Spalte B: Vorname (kommt nicht immmer vor. Also evtl. leere Zelle)
- Spalte C: Nachname
- Spalte D: Firma (nach dieser Zelle soll selektiert !!UND!! sortiert werden)
- Spalte E: Anschrift
- Spalte F: PLZ (fehlt auch ab und zu)
- Spalte G: Tel.
- ...bis Spalte K
Es ist schon fast egal, bei Änderung welcher Zelle das Programm startet.
Das hab ich ins worksheet eingespeist:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim laR As Long, i As Long
If Target.Column <> 4 Then Exit Sub
laR = Cells(Rows.Count, 2).End(xlUp).Row
Range("A2:K" & laR).Sort Key1:=Range("D2"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
For i = laR To 2 Step -1
If Cells(i, 2).Value = Cells(i - 1, 2).Value Then
Rows(i).Delete Shift:=xlUp
Cells(i - 1, 2).Interior.ColorIndex = 6
End If
Next i
End Sub

Das Problem kann gar nicht so gross sein, aber für mich ist´s einfach unsichtbar.
MfG
Carsten
Anzeige
AW: Doppelte Einträge löschen, und farblich markieren
WernerB.
Hallo Carsten,
Du hast unnötigerweise zu diesem Thema einen neuen Thread aufgemacht; ich habe Dir dort geantwortet.
Gruß
WernerB.

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige