Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wiederholung löschen

Wiederholung löschen
01.05.2014 20:38:27
Ralph
Hallo liebes Excel Forum,
ich möchte in einem Tabellenblatt mit Hilfe von VBA Zeilen löschen, wenn der Begriff in Spalte A in der Zeile darüber bereits vorkommt. Da Spalte A alphabetisch sortiert ist, kann eine Wiederholung nur direkt unter einer betroffenen Zeile vorkommen. Ein Begriff kommt maximal 2 mal insgesamt vor, so dass nur 1 Wiederholung möglich ist. Die Anzahl der Begriffe ist in einer Zelle max. 1, insgesamt sind es aber mehrere 100 Zeilen. Ob die obere oder untere Zeile gelöscht wird ist egal, wichtig wäre noch das die verbleibende Zeile kenntlich gemacht wird (Vermerk in Spalte B, siehe BSP Datei).
Um das Ganze etwas anschaulicher zu gestalten, habe ich eine Bsp.-Datei gebaut:
https://www.herber.de/bbs/user/90430.xls
Vielen vielen Dank & freundliche Grüße
Ralph

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wiederholung löschen
01.05.2014 21:02:09
Hajo_Zi
Hallo Ralph,
warum nicht ohne VBA?
Doppelte Löschen
angenommen Deine Daten stehen in A1 bis A?
Bereich markieren = Spalte A anklicken (evtl. eine Leerzeile vorher einfügen)
Daten / Filter / Spezialfilter
keine Duplikate
jetzt kannst du noch einstellen, ob an gleicher Stelle oder woanders placiert; hier also B1 eingeben
Spalte A anschließend löschen
Bei mehreren Spalten, muss die Liste eine Überschrift haben, am besten fett formatiert, dann erkennt sie auch Excel als Überschrift.
Das kannst Du auch aufzeichnen.

Anzeige
AW: Wiederholung löschen
01.05.2014 21:27:13
Ralph
Hallo Hajo,
vielen Dank für Deinen Vorschlag! Ich möchte diesen Vorgang gerne mit einem VBA Code realisieren, die Lösung mit dem Spezialfilter integriert zudem nicht das Beschriften betroffener Begriffe in Spalte B. Das ist jedoch sehr wichtig.
Nochmals Dir besten Dank, freue mich auf weitere Antworten!
Ralph

Anzeige
AW: Wiederholung löschen
02.05.2014 10:19:30
Dieter
Hallo Ralph,
du kannst das mit dem folgenden VBA-Programm machen:
Sub Löschen()
Dim letzteZeile As Long
Dim ws As Worksheet
Dim zeile As Long
Set ws = ThisWorkbook.Worksheets("Vorher")
letzteZeile = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For zeile = letzteZeile To 2 Step -1
If ws.Cells(zeile, "A") = ws.Cells(zeile - 1, "A") Then
ws.Rows(zeile).Delete
ws.Cells(zeile - 1, "B") = "DEL"
End If
Next zeile
End Sub
Den Blattnamen "Vorher" musst du ggf. im Programm ersetzen.
Viele Grüße
Dieter

Anzeige
AW: Wiederholung löschen (FB/ERL)
02.05.2014 20:18:11
Ralph
Hallo Dieter,
vielen Dank, Dein Code funktioniert super!
Nochmals danke an euch beide!
Gruß Ralph
;
Anzeige
Anzeige

Infobox / Tutorial

Wiederholungen in Excel effektiv löschen


Schritt-für-Schritt-Anleitung

Um doppelte Einträge in einer Excel-Tabelle zu löschen, während die verbleibenden Einträge in einer anderen Spalte vermerkt werden, kannst Du den folgenden VBA-Code verwenden. Dieser Code geht davon aus, dass Deine Daten in Spalte A beginnen und die zu markierenden Zeilen in Spalte B vermerkt werden.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Kopiere und füge den folgenden Code ein:

    Sub Löschen()
       Dim letzteZeile As Long
       Dim ws As Worksheet
       Dim zeile As Long
       Set ws = ThisWorkbook.Worksheets("Vorher") ' Blattnamen anpassen
       letzteZeile = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
       For zeile = letzteZeile To 2 Step -1
           If ws.Cells(zeile, "A") = ws.Cells(zeile - 1, "A") Then
               ws.Rows(zeile).Delete
               ws.Cells(zeile - 1, "B") = "DEL"
           End If
       Next zeile
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Mit diesem Code werden alle doppelten Einträge in Spalte A gelöscht, und die verbleibenden Zeilen erhalten den Vermerk „DEL“ in Spalte B.


Häufige Fehler und Lösungen

  • Fehler: „Subscript out of range“

    • Stelle sicher, dass der Blattname im Code korrekt ist und das Blatt existiert.
  • Fehler: Makro funktioniert nicht

    • Vergewissere Dich, dass Makros in Deinen Excel-Einstellungen aktiviert sind.
  • Keine Markierung in Spalte B

    • Überprüfe, ob es tatsächlich Duplikate gibt, die gelöscht werden können.

Alternative Methoden

Falls Du VBA nicht verwenden möchtest, gibt es auch die Möglichkeit, das Löschen von Duplikaten über die integrierten Excel-Funktionen zu erledigen:

  1. Markiere den Bereich in Spalte A.
  2. Gehe zu Daten > Duplikate entfernen.
  3. Wähle die Optionen für das Entfernen von Duplikaten und klicke auf OK.

Beachte, dass diese Methode die Markierung in Spalte B nicht automatisch hinzufügt.


Praktische Beispiele

Nehmen wir an, Du hast die folgende Liste in Spalte A:

Äpfel
Äpfel
Bananen
Kirschen
Kirschen

Nach Ausführung des VBA-Codes wird das Ergebnis wie folgt aussehen:

Äpfel  DEL
Bananen
Kirschen  DEL

Die doppelten Einträge wurden gelöscht und die verbleibenden Einträge mit „DEL“ markiert.


Tipps für Profis

  • Backup erstellen: Bevor Du mit dem Löschen von Daten beginnst, erstelle immer eine Sicherungskopie Deiner Datei.

  • Variablen anpassen: Passe den Code je nach Bedarf an, z.B. die zu löschenden Spalten oder das Markierungsschema.

  • Testlauf: Führe das Makro zunächst an einer kleinen Datenmenge aus, um sicherzustellen, dass es wie gewünscht funktioniert.


FAQ: Häufige Fragen

1. Kann ich den Code anpassen, um mehrere Spalten zu prüfen?
Ja, Du kannst den Code erweitern, um mehrere Spalten zu durchlaufen. Achte darauf, die Bedingungen für das Löschen entsprechend anzupassen.

2. Funktioniert das auch in Excel 365?
Ja, der VBA-Code ist mit Excel 365 sowie älteren Versionen kompatibel, solange Makros aktiviert sind.

3. Was mache ich, wenn ich nur bestimmte Werte löschen möchte?
Du kannst die Bedingungen im VBA-Code anpassen, um nur spezifische Werte zu löschen, indem Du eine If-Bedingung hinzufügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige