Anzeige
Archiv - Navigation
1348to1352
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
Inhaltsverzeichnis

Duplikate kopieren & aus alter Liste löschen

Duplikate kopieren & aus alter Liste löschen
14.02.2014 19:10:14
Judith
Hallo zusammen,
ich habe einen totalen Knoten im Kopf und komme einfach nicht weiter. Ich habe eine Datei mit Daten in Tabellenblatt "Data" in Spalte A bis AI, wobei der Wert in Spalte I mehrfach vorkommen kann.
Ich möchte alle Einträge, die in Spalte I den gleichen Wert haben, in das Blatt "Duplicates" kopieren und die Einträge aus dem ursprünglichen Inputblatt "Data" löschen.
Hintergrund ist, dass der Wert in Spalte I zwar der gleiche sein kann, aber ich muss im Nachgang manuell überprüfen, ob es sich tatächlich um den gleichen Vorgang handelt.
Habt ihr vielleicht eine Idee?
Mit folgendem Code habe ich es immerhin geschafft die Einträge in mein Duplicates-Blatt zu kopieren, aber ich bekomme es einfach nicht hin, ALLE Einträge mit dem gleichen Wert in Spalte I zu löschen.
Sub Test()
Dim wstSource As Worksheet, wstOutput As Worksheet
Dim rngCell As Range, rngMyData As Range
Dim lngMyRow As Long
Set wstSource = Worksheets("Data")
Set wstOutput = Worksheets("Duplicates")
Set rngMyData = wstSource.Range("I2:I" & Range("I" & Rows.Count).End(xlUp).Row)
For Each rngCell In rngMyData
If Evaluate("COUNTIF(" & rngMyData.Address & "," & rngCell.Address & ")") > 1 Then
lngMyRow = wstOutput.Cells(Rows.Count, "I").End(xlUp).Row + 1
wstSource.Range("A" & rngCell.Row & ":AI" & rngCell.Row).Copy _
Destination:=wstOutput.Range("A" & lngMyRow & ":AI" & lngMyRow)
End If
Next rngCell
End Sub

Hier auch noch eine Beispieldatei: https://www.herber.de/bbs/user/89294.xlsx
Ich hoffe Ihr könnt mir helfen, denn ich bin mit meinem Latein ziemlich am Ende.
Viele Grüße
Judith

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Duplikate kopieren & aus alter Liste löschen
14.02.2014 19:19:48
Hajo_Zi
Hallo Judith,
warum nicht Register Daten, Befehlsgruppe Sortieren und Filter, Erweitert (Spezial Filter)?

AW: Duplikate kopieren & aus alter Liste löschen
14.02.2014 19:22:25
Judith
Hallo Hajo,
das Problem ist, dass es eine riesengroße Datei ist (kann bis zu 20,000 Zeilen haben), die immer wieder von anderen Leuten bearbeitet wird. Daher möchte ich alles am Liebsten "sicher" in einem Makro verpacken. Auf den Filter möchte ich nur im Notfall zurück greifen.
VG Judith

AW: Duplikate kopieren & aus alter Liste löschen
14.02.2014 19:26:46
Judith
Noch eine kleine Frage: wenn ich den Filter nutze, muss ich doch in der Regel einen bestimmten Wert eingeben,oder ? Dieser kann jedoch so ziemlich jede Zahl sein. Dann müsste ich mich durch unendlich viele Einträge filtern. Oder gibt es die Möglichkeit alle Werte, die mehrmals vorkommen, anzuzeigen?
VG Judith

Anzeige
AW: Duplikate kopieren & aus alter Liste löschen
14.02.2014 19:35:45
Judith

AW: Duplikate kopieren & aus alter Liste löschen
14.02.2014 23:07:51
Uwe
Hallo Judith,
probier mal das.
Sub doppelteFinden()
Dim i As Integer
Dim x As Integer
x = Cells(Cells.Rows.Count, 9).End(xlUp).Row
For i = x To 1 Step -1
If WorksheetFunction.CountIf(Columns(9), Cells(i, 9)) > 1 Then
Rows(i).Delete
End If
Next i
End Sub
Gruß Uwe

AW: Duplikate kopieren & aus alter Liste löschen
14.02.2014 23:26:51
Judith
Hi Uwe,
das Makro löscht die Zeilen soweit, dass alle Werte nur einmal vorkommen. Ich brauche jedoch etwas anderes.
In meinem Ausgangsblatt "Data" habe ich Zeilen, die in Spalte I den gleichen Wert haben können. Alle Zeilen, die in I einen Wert haben, der mehr als einmal vorkommt, werden in Tabellenblatt "Duplicates" kopiert. Die Daten werden später von mir überprüft und manuell angepasst. Im Anschluss möchte ich die überarbeiteten Daten wieder in das Blatt "Data" kopieren.
Daher möchte ich, nachdem ich die Zeilen - bei denen in I der Wert mehrmals vorhanden ist - in das Blatt Duplicates kopiert haben, in der Ursprungsdatei löschen. Wichtig ist, dass ALLE Zeilen gelöscht werden.
Zum Schluss - also nach Ausführen des Makros - soll das Ganze also wie folgt aussehen:
https://www.herber.de/bbs/user/89296.xlsx
Hast du vielleicht eine Idee?
VG Judith

Anzeige
AW: Duplikate kopieren & aus alter Liste löschen
15.02.2014 11:47:20
Christian
Hallo Judith,
so zB.
Option Explicit
Sub TestIt()
Dim wksDst As Worksheet
Dim objDic As Object
Dim i As Long, k As Long
Set wksDst = Sheets("Duplicates")
Set objDic = CreateObject("Scripting.Dictionary")
k = 2
With Sheets("Data")
For i = 2 To .Cells(.Rows.Count, 9).End(xlUp).Row
objDic(.Cells(i, 9).Value) = objDic(.Cells(i, 9).Value) + 1
Next
For i = .Cells(.Rows.Count, 9).End(xlUp).Row To 2 Step -1
If objDic(.Cells(i, 9).Value) > 1 Then
.Rows(i).Cut wksDst.Rows(k)
.Rows(i).Delete
k = k + 1
End If
Next
End With
Set objDic = Nothing
Set wksDst = Nothing
End Sub
Gruß
Christian

Anzeige
AW: Duplikate kopieren & aus alter Liste löschen
17.02.2014 14:05:49
Judith
Hallo Christian,
VIELEN DANK! Das funktioniert absolut klasse. Ich versuche noch zu verstehen wie das Makro funktioniert :-), aber es läuft perfekt!
Ich wünsche einen guten Start in die neue Woche !
Viele Grüße
Judith

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige