Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: per VBA mehrere Spalten vergleichen doppelte lösch

per VBA mehrere Spalten vergleichen doppelte lösch
06.03.2014 16:35:41
PaM
Hallo
gibt es eine VBA - Möglichkeit, auf einem grossen Excelsheet den Datensatzinhalt über mehrere Spalten (z.B. A-M) zu vergleichen und ... falls wirklich völlig identische Datensätze gefunden werden, diese - bis auf einen Datensatz zu löschen ?
Beispiel:
Spalten A-M sind mit Werten gefüllt.
Findet man über die Spalten A-M eine Zeile bei der wirklich alle Zellen (A-M) gleich sind, so soll eine Zeile gelöscht werden.
Wäre nett, wenn hier jemand weiterhelfen könnte

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ohne VBA
06.03.2014 17:06:00
Matze
Hallo PaM,
in VBA wirklich nötig?
- Makiere Alles was von der Prüfung betroffen ist.
- Dann Register Daten / Duplikate entfernen
fertig, gaaaznz ohne VBA
Matze

AW: per VBA mehrere Spalten vergleichen dopp
06.03.2014 22:04:44
Raphael
Hallo PaM,
was genau soll denn gelöscht werden?
Bsp:
Wenn die Zahl 1 in der Spalte A, B, L steht, soll sie in allen bis auf eine Spalte gelöscht werden?
Kurze Beispieldatei mit Erläuterung schafft hier sicher Klarheit.
Gruess
Raphael

Anzeige
AW: per VBA mehrere Spalten vergleichen dopp
06.03.2014 22:20:46
Matze
Hi Raphael,
ich denke das ich mit meinem Vorschlag richtig liege, alle Zeilen müssen miteinander verglichen werden und ebenso die Spalten
Steht in Zeile 1 in den Spalten A-M ein "X"(oder was auch immer) , so sollen Alle Zeilen bei dem es genauso ist gelöscht werden bis auf die Zeile 1.
Schade ist das man keine Rückantwort bekommt.
Raphael, kannste hier bitte nochmal schauen, er hat auch ne gaaaanz tolle Musterdatei erstellt: (lach)
ich bekomm das nich hin, https://www.herber.de/forum/messages/1352332.html
Matze

Anzeige
Duplikate entfernen
07.03.2014 00:02:14
Matthias
Hallo Matze
Steht in Zeile 1 in den Spalten A-M ein "X"(oder was auch immer) , so sollen Alle Zeilen bei dem es genauso ist gelöscht werden bis auf die Zeile 1.
Das glaube ich eher so nicht.
Ich denke der/die Fragesteller/in möchte alle Zellen des Bereiches("A:M") in jeder Zeile vergleichen.
Sind z.B. alle Zellen der Zeile(1) von ("A") bis ("M") gleich der Zellen ("A") bis ("M") in Zeile(4), dann soll eine dieser gleichen Zeilen gelöscht werden.
Dazu ist allerdings mE eine Hilfsspalte nötig, die eine Verkettung der Inhalte der Zellen von ("A") bis ("M") mit einem eindeutigen "Trenner" zwischen den Zellinhalten (der aber in keiner Zelle vorkommen darf!) darstellt.
Erst jetzt kommt Dein Vorschlag, (der ja auch richtig ist) zum Tragen.
Nun wird der komplette Bereich markiert
und über Duplikate entfernen (bei richtiger Einstellung [Spaltenauswahl!] ) weiterverfahren.


Hier mal eine Darstellung: (mit dem Trenner: #)
"A:M" in Zeil(1) ist identisch mit "A:M" in Zeil(4)
Tabelle1

 ABCDEFGHIJKLMNOP
177629781725752964623815725-77#62#97#81#72#57#52#96#46#23#81#57#252
28114993093308125744518-81#14#9#93#0#93#30#81#2#57#44#5#181
39692423374105470379301916-96#92#42#33#74#10#54#70#37#93#0#19#161
477629781725752964623815725-77#62#97#81#72#57#52#96#46#23#81#57#252
58114993F93308125744518-81#14#9#93#F#93#30#81#2#57#44#5#181

Formeln der Tabelle
ZelleFormel
O1=VERKETTEN(A1;"#";B1;"#";C1;"#";D1;"#";E1;"#";F1;"#";G1;"#";H1;"#";I1;"#";J1;"#";K1;"#";L1;"#";M1)
P1=ZÄHLENWENN($O$1:$O$5;O1)
O2=VERKETTEN(A2;"#";B2;"#";C2;"#";D2;"#";E2;"#";F2;"#";G2;"#";H2;"#";I2;"#";J2;"#";K2;"#";L2;"#";M2)
P2=ZÄHLENWENN($O$1:$O$5;O2)
O3=VERKETTEN(A3;"#";B3;"#";C3;"#";D3;"#";E3;"#";F3;"#";G3;"#";H3;"#";I3;"#";J3;"#";K3;"#";L3;"#";M3)
P3=ZÄHLENWENN($O$1:$O$5;O3)
O4=VERKETTEN(A4;"#";B4;"#";C4;"#";D4;"#";E4;"#";F4;"#";G4;"#";H4;"#";I4;"#";J4;"#";K4;"#";L4;"#";M4)
P4=ZÄHLENWENN($O$1:$O$5;O4)
O5=VERKETTEN(A5;"#";B5;"#";C5;"#";D5;"#";E5;"#";F5;"#";G5;"#";H5;"#";I5;"#";J5;"#";K5;"#";L5;"#";M5)
P5=ZÄHLENWENN($O$1:$O$5;O5)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4


Userbild


Userbild
Userbild

Anzeige
AW: Duplikate entfernen
07.03.2014 00:16:44
Matze
Hi Matti, (Dein Beispiel mal nachgestellt, sogar mit Überschriften)
ohne deine O Spalte : https://www.herber.de/bbs/user/89570.xlsx
geht bei mir mit Excel2010 wunderbar, komme auf das gleiche Ergebnis wie du.
Matze

Anzeige
Wunderbar :-)
07.03.2014 00:32:19
Matthias
Halle Matze
Ich hätte es "so" garnicht erst versucht.
Ich danke Dir, das Du meinen Horizont erweitert hast! :-)
Gruß Matthias

AW: Wunderbar :-)
07.03.2014 08:47:51
PaM
Einen wunderschönen guten Morgen liebe Leut
bitte entschuldigt meine längere Forums-Absenz und ... entschuldigt, dass ich Euch erst jetzt herzlich für Eure bisherige Hilfe danken möchte!
leider war ich geschäftlich für einen Notfall abwesend und ohne PC-Zugang.
jetzt werde ich mir mal alle Eure tollen Vorschläge in Ruhe angucken und ... natürlich liefere ich auch noch eine kleine Beispielsdatei.
aber vorab sei gesagt:
es braucht wohl eine VBA-Lösung :-(
Grund:
das Ganze Dubletten-Entfern-Spielchen soll in einer grossen Datenbank (mit UserFormen) eingebunden werden.
Die Daten ohne Dubletten werden dann weiterverwendet in UserFormen
Grüsse: PaM

Anzeige
Der MakroRekorder ist Dein Freund :-)
07.03.2014 10:02:12
Matthias
Hallo
Der MakroRekorder ist Dein Freund ;-)
ActiveSheet.Range("$B$1:$P$8").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), Header:=xlYes Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Duplikate in mehreren Spalten mit VBA entfernen


Schritt-für-Schritt-Anleitung

Um Duplikate in mehreren Spalten eines Excel-Dokuments mithilfe von VBA zu entfernen, folge diesen Schritten:

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

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)", wähle "Einfügen" und dann "Modul".

  3. Füge den folgenden Code ein:

    Sub DuplikateEntfernen()
        Dim rng As Range
        Set rng = ActiveSheet.Range("A1:M100") ' Passe den Bereich an Deine Daten an
        rng.RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), Header:=xlYes
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus: Drücke ALT + F8, wähle DuplikateEntfernen aus und klicke auf "Ausführen".

Dieser Code entfernt alle doppelten Einträge in den Spalten A bis M und behält nur eine der doppelten Zeilen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004"

    • Lösung: Stelle sicher, dass der angegebene Bereich (Range("A1:M100")) korrekt ist und die Daten in diesen Zellen vorhanden sind.
  • Fehler: Keine Duplikate gefunden

    • Lösung: Überprüfe, ob die Duplikate tatsächlich identisch sind (z.B. keine führenden oder folgenden Leerzeichen).

Alternative Methoden

Wenn Du keine VBA-Lösung verwenden möchtest, kannst Du auch die integrierte Funktion in Excel nutzen:

  1. Markiere den Bereich, den Du überprüfen möchtest.
  2. Gehe zu Daten > Duplikate entfernen.
  3. Wähle die Spalten aus, in denen Du Duplikate entfernen möchtest, und klicke auf "OK".

Diese Methode ist besonders nützlich, wenn Du nur schnell einige Duplikate entfernen möchtest, ohne VBA zu verwenden.


Praktische Beispiele

Hier sind einige Beispiele, wie Du die VBA-Methode nutzen kannst:

  1. Beispiel 1: Entfernen von Duplikaten in den Spalten A bis C.

    Sub DuplikateEntfernenBeispiel1()
        Dim rng As Range
        Set rng = ActiveSheet.Range("A1:C100")
        rng.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
    End Sub
  2. Beispiel 2: Prüfen auf Duplikate in den Spalten D bis F.

    Sub DuplikateEntfernenBeispiel2()
        Dim rng As Range
        Set rng = ActiveSheet.Range("D1:F100")
        rng.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
    End Sub

Tipps für Profis

  • Verwende den Makro-Rekorder: Wenn Du nicht sicher bist, wie Du Deinen VBA-Code schreiben sollst, nutze den Makro-Rekorder, um die Schritte aufzuzeichnen und den generierten Code zu modifizieren.
  • Nutze Hilfsspalten: Wenn Du komplexe Vergleiche anstellen möchtest, kann es hilfreich sein, eine Hilfsspalte zu erstellen, die alle relevanten Daten zusammenfasst (z.B. durch Verkettung der Inhalte).

FAQ: Häufige Fragen

1. Kann ich das Makro auf eine bestimmte Zeile anwenden? Ja, Du kannst den Bereich im Code anpassen, um nur bestimmte Zeilen zu prüfen, z.B. Range("A1:A50").

2. Was mache ich, wenn ich die Duplikate nicht nur entfernen, sondern auch analysieren möchte? In diesem Fall kannst Du die Daten zuerst in eine Hilfsspalte kopieren und dort die Duplikate markieren, bevor Du sie löschst.

3. Wie kann ich Duplikate in zwei Spalten finden? Du kannst die RemoveDuplicates Methode für den gewünschten Bereich anpassen und nur die entsprechenden Spalten angeben.

Mit diesen Anleitungen und Tipps kannst Du Duplikate in mehreren Spalten in Excel effizient entfernen.

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