Anzeige
Archiv - Navigation
780to784
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
780to784
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

EILT!!! Doppelte Datensätze komplett löschen

EILT!!! Doppelte Datensätze komplett löschen
10.07.2006 21:27:40
info@marcel-mostert.de
Guten Abend!!!
Ich hoffe einer von euch ist noch was.
Ich hab voll die Horroraufgabe, die ich heute Abend noch fertig machen muss.
Ich habe zwei Exceltabellen, insgesammt 20.000 Datensätze!
10.000 sind aus einer orginal Datenlieferung
und die zweite ca. 8.000, diese 8.000 sind aus den 10.000
die schon abtelefoniert wurden.
Ich muss die Tabellen also so sortieren, das alle
8.000 die aus den 10.000 schon bearbeitet wurden gelöscht
werden, also 2.000 die nicht bearbeitet wurden überbleiben.
Ich hoffe das war verständlich.
Ich muss das heute Abend noch fertig machen.
Natürlich könnte ich das Ding nach Kundennummern
sortieren lassen und dann alles was doppelt vorkommt
löschen, aber dann bin ich bis spät in der Nacht am arbeiten.
Ich hoffe da gibts eine Lösung!
Liebe grüße, Marcel.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: EILT!!! Doppelte Datensätze komplett löschen
10.07.2006 21:34:11
Josef
Hallo Marcel!
Wie sind die Tabellen aufgebaut?
Was ist das einteutige Kriterium eines jeden Datensatzes?
Gruß Sepp

AW: EILT!!! Doppelte Datensätze komplett löschen
10.07.2006 21:38:01
info@marcel-mostert.de
Hi Sepp,
Die Datei/en bestehen einfach nur aus
Kundennummer Telefonnummer
123456 0145775
Mehr nicht! Wie gesagtz muss ich die beiden quasi "abgleichen".
Sprich die ca. 8.000 aus den 10.000 löschen die doppelt vorkommen,
so das nachher nur noch ca. 2.000 über bleiben!
AW: EILT!!! Doppelte Datensätze komplett löschen
10.07.2006 21:47:51
thomas
hi marcell,
damit sollte es klappen:

Sub DoppelteWeg()
Dim i As Integer, iRows As Integer
iRows = Cells(Cells.Rows.Count, 1).End(xlUp).Row
For i = iRows To 1 Step -1
If WorksheetFunction.CountIf(Columns(1), Cells(i, 1)) > 1 Then
Rows(i).Delete
End If
Next i
End Sub

gruss thomas
Anzeige
AW: EILT!!! Doppelte Datensätze komplett löschen
10.07.2006 21:51:47
info@marcel-mostert.de
Danke Thomas,
jetzt müsstest du mir nur noch sagen wie ich das anwende =(
Sorry, hab das absolut nicht drauf!!!
Könnten wir evtl. telefonieren, auf meine Kosten versteht sich!?!
Vielen Dank bereits im Vorraus!!!
Marcel
AW: EILT!!! Doppelte Datensätze komplett löschen
10.07.2006 21:59:24
thomas
hi marcel,
1. drücke ALT + F11
2. in der menüzeile auf EINFÜGEN ---&gt MODUL
3. den code in das rechte fenster kopieren
4. das makro über deine arbeitsmappe laufen lassen
gruss thomas
@Thomas!
10.07.2006 21:54:23
Josef
Hallo Thomas!
Du hast übersehen, daß die Daten in zwei unterschiedlichen Tabellen stehen!
Gruß Sepp

Anzeige
AW: @Thomas!
10.07.2006 22:00:48
thomas
hi sepp,
stimmt, danke für den hinweis.
wieder mal zu schnell gelesen.
gruss thomas
AW: EILT!!! Doppelte Datensätze komplett löschen
10.07.2006 21:52:22
Josef
Hallo Marcel!
Ich habe angenommen, das die Daten ab Zeile 2 beginnen.
Code einfach in ein allgemeines Modul (Alt+F11 un den VBE zu öffnen, "Einfügen" &gt "Modul" und in das rechte Fenster den Code kopieren) kopieren, Tabellennamen anpassen und das Makro starten.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub KompareAndDelete()
Dim rng As Range, rngU As Range, rngF As Range
Dim objShAll As Worksheet, objShPart As Worksheet

Set objShAll = Sheets("Tabelle1") 'Tabelle mit allen Daten Name anpassen
Set objShPart = Sheets("Tabelle2") 'Tabelle mit den abgearbeiteten Daten Name anpassen

'Daten beginnen in Zeile 2, sonst statt A2, A1 schreiben!
For Each rng In objShPart.Range("A2:A" & objShPart.Cells(Rows.Count, 1).End(xlUp).Row)
  Set rngF = objShAll.Range("A:A").Find(rng, lookat:=xlWhole)
  If Not rngF Is Nothing Then
    If rngU Is Nothing Then
      Set rngU = rngF.EntireRow
    Else
      Set rngU = Union(rngU, rngF.EntireRow)
    End If
  End If
Next

If Not rngU Is Nothing Then rngU.Delete

Set rngF = Nothing
Set rngU = Nothing
Set objShAll = Nothing
Set objShPart = Nothing

End Sub


Gruß Sepp

Anzeige
AW: EILT!!! Doppelte Datensätze komplett löschen
10.07.2006 22:09:48
info@marcel-mostert.de
*heul* =(
Hi thomas, hi joseph.
Das Makro lief und in Tabelle 1 blieben ca. 2.700 Datensätze über.
Ich war zuerst total happy und hab hier getanzt! Nur zur sicherheit
habe ich dann die 2700 nochmal unter die 10.000 kopiert und sortieren lassen
nach Kundennummer...
Und was soll ich sagen? Immer noch doppelte!
Das verstehe ich nicht =(((
HILFEEEEEE
DOOF!!! Danke euch! Ihr seid die besten!!!
10.07.2006 22:21:34
info@marcel-mostert.de
DOOF!!!
Also ICH =)
Ich hab die 2.700 Datensätze mit der OrginalDatenlieferung verglichen!
Das da doppelte vorkommen ist mehr als logisch.
Hab die 2.700 dann nochmal mit den benutzten abgeglichen, dort
tauchten keine Doppelten mehr auf!!! Ich denke das wars, wenn ich
jetzt keinen Denkfehler mehr gemacht habe!
Vielen lieben Dank an euch beide!!!
Anzeige
AW: EILT!!! Doppelte Datensätze komplett löschen
10.07.2006 22:22:54
Josef
Hallo Marcel!
Dann sind die Daten nicht identisch!
Mögliche Ursachen sind z.B. Leerzeichen oder Textzahlen.
Vielleicht kriegen wir's so hin.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub KompareAndDelete()
Dim rng As Range, rngU As Range, rngF As Range
Dim objShAll As Worksheet, objShPart As Worksheet

Set objShAll = Sheets("Tabelle1") 'Tabelle mit allen Daten Name anpassen
Set objShPart = Sheets("Tabelle2") 'Tabelle mit den abgearbeiteten Daten Name anpassen

With objShAll
  .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row).Replace " ", ""
  .Range("B65536") = 1
  .Range("B65536").Copy
  .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row).PasteSpecial Paste:=xlAll, Operation:=xlMultiply
  Application.CutCopyMode = False
  .Range("B65536").Clear
End With

With objShPart
  .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row).Replace " ", ""
  .Range("B65536") = 1
  .Range("B65536").Copy
  .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row).PasteSpecial Paste:=xlAll, Operation:=xlMultiply
  Application.CutCopyMode = False
  .Range("B65536").Clear
End With

'Daten beginnen in Zeile 2, sonst statt A2, A1 schreiben!
For Each rng In objShPart.Range("A2:A" & objShPart.Cells(Rows.Count, 1).End(xlUp).Row)
  Set rngF = objShAll.Range("A:A").Find(rng, lookat:=xlWhole)
  If Not rngF Is Nothing Then
    If rngU Is Nothing Then
      Set rngU = rngF.EntireRow
    Else
      Set rngU = Union(rngU, rngF.EntireRow)
    End If
  End If
Next

If Not rngU Is Nothing Then rngU.Delete

Set rngF = Nothing
Set rngU = Nothing
Set objShAll = Nothing
Set objShPart = Nothing

End Sub


Gruß Sepp

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige