Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1192to1196
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

Aus 2 Tab.-blättern identische Datensätze finden

Aus 2 Tab.-blättern identische Datensätze finden
Mike
Hallo,
ich stehe vor folgendem Problem: Ich habe zwei Tabellenblätter mit zig Tausend Datensätzen. Der Aufbau der Spalten ist identisch, da stehen z.b. aname, iname, strasse, ort, plz und noch einiges mehr. Nun hätte ich gerne alle Datensätze, die in beiden Tabellenblättern vorkommen in ein neues Tabellenblatt geschrieben, allerdings nur wenn der "aname" und die "plz" identisch sind, die anderen Daten spielen keine Rolle was dies angeht, aber es soll trotzdem der komplette Datensatz eingefügt werden, nicht nur aname und plz. in einem weiteren tabellenblatt sollen dann auch noch die datensätze erscheinen, die nicht identisch sind. Hat jemand eine Idee, wie man das lösen kann. Eine Datei, wie das aufgebaut ist, habe ich hier:
https://www.herber.de/bbs/user/72739.xls
AW: Aus 2 Tab.-blättern identische Datensätze finden
19.12.2010 20:28:16
Josef

Hallo Mike,
lösche die Leerzeilen unter den Überschriften (haben in einer Liste nichts verloren!) und teste den folgenden Code.

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub compare()
  Dim objSh1 As Worksheet, objSh2 As Worksheet, objShMatch As Worksheet, objShNoMatch
  Dim rng As Range
  
  On Error GoTo ErrExit
  Application.ScreenUpdating = False
  
  Set objSh1 = Sheets("daten1")
  Set objSh2 = Sheets("daten2")
  Set objShMatch = Sheets("identische")
  Set objShNoMatch = Sheets("nicht-identische")
  
  objShMatch.UsedRange.Clear
  objShNoMatch.UsedRange.Clear
  
  With objSh1
    .Columns(11).Insert
    .Cells(1, 11) = "X"
    .Cells(2, 11).FormulaArray = "=ISNUMBER(MATCH(A2&E2,'" & objSh2.Name & "'!A:A&'" & objSh2.Name & _
      "'!E:E,0))"
    .Range(.Cells(2, 11), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 11)).FillDown
    .Columns(11).Value = .Columns(11).Value
  End With
  
  With objSh2
    .Columns(11).Insert
    .Cells(1, 11) = "X"
    .Cells(2, 11).FormulaArray = "=ISNUMBER(MATCH(A2&E2,'" & objSh1.Name & "'!A:A&'" & objSh1.Name & _
      "'!E:E,0))"
    .Range(.Cells(2, 11), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 11)).FillDown
    .Columns(11).Value = .Columns(11).Value
  End With
  
  With objSh1
    If .AutoFilterMode Then .Range("A1").AutoFilter
    .Range("A1").AutoFilter Field:=11, Criteria1:="TRUE", Operator:=xlAnd
    On Error Resume Next
    Set rng = .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    If Not rng Is Nothing Then rng.Copy objShMatch.Range("A1")
    
    .Range("A1").AutoFilter Field:=11, Criteria1:="FALSE", Operator:=xlAnd
    On Error Resume Next
    Set rng = .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    If Not rng Is Nothing Then rng.Copy objShNoMatch.Range("A1")
    .Range("A1").AutoFilter
    .Columns(11).Delete
  End With
  
  With objSh2
    If .AutoFilterMode Then .Range("A1").AutoFilter
    .Range("A1").AutoFilter Field:=11, Criteria1:="FALSE", Operator:=xlAnd
    On Error Resume Next
    With .Range("A1").CurrentRegion
      Set rng = .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).SpecialCells(xlCellTypeVisible)
    End With
    On Error GoTo 0
    If Not rng Is Nothing Then rng.Copy objShNoMatch.Cells(objShNoMatch.Cells(Rows.Count, _
      1).End(xlUp).Row + 1, 1)
    .Range("A1").AutoFilter
    .Columns(11).Delete
  End With
  
  objShMatch.Columns(11).Delete
  objShNoMatch.Columns(11).Delete
  
  ErrExit:
  Application.ScreenUpdating = True
  
  Set objSh1 = Nothing
  Set objSh2 = Nothing
  Set objShMatch = Nothing
  Set objShNoMatch = Nothing
  Set rng = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Aus 2 Tab.-blättern identische Datensätze finden
19.12.2010 20:40:21
Mike
Hallo Sepp,
erstmal vielen vielen dank für Deine Mühe. Ich habe es jetzt ausprobiert, aber leider funktoniert es nicht, er schreibt mir alle Datensätze in das Tabellenblatt 'nicht-identische'. Hast Du eine Idee, woran das liegen könnte?
Grüße
Mike
AW: Aus 2 Tab.-blättern identische Datensätze finden
19.12.2010 20:40:56
Mike
Hallo Sepp,
erstmal vielen vielen dank für Deine Mühe. Ich habe es jetzt ausprobiert, aber leider funktoniert es nicht, er schreibt mir alle Datensätze in das Tabellenblatt 'nicht-identische'. Hast Du eine Idee, woran das liegen könnte?
Grüße
Mike
AW: Aus 2 Tab.-blättern identische Datensätze finden
19.12.2010 20:48:46
Josef

Hallo Mike,
hast du das mit "Leerzeile löschen" gelesen?
Also bei mir funktioniert es.
https://www.herber.de/bbs/user/72741.zip

Gruß Sepp

Anzeige
AW: Aus 2 Tab.-blättern identische Datensätze finden
19.12.2010 21:14:57
Mike
Hallo Sepp,
ja, die Leerzeilen hatte ich vorher gelöscht, ich hab 2003er Version. Kann es daran liegen?
Gruss
Mike
AW: Aus 2 Tab.-blättern identische Datensätze finden
19.12.2010 21:45:55
Josef

Hallo Mike,
das läuft auch auf xl2003 (selber getestet!)!
Hast du meine Datei probiert?

Gruß Sepp

AW: Aus 2 Tab.-blättern identische Datensätze finden
19.12.2010 22:07:57
Mike
Hallo Sepp,
ja, hab das mit Deiner Datei auch probiert, der Effekt ist der selbe, er schreibt alles in -nicht-identisch, schau hier:
Userbild
Gruss
Mike
Anzeige
AW: Aus 2 Tab.-blättern identische Datensätze finden
19.12.2010 22:21:29
Josef

Hallo Mike,
hab den (meinen) Fehler gefunden;-((.
Ich hatte zwar die Version für xl2003 angepasst, aber die falsche hochgeladen. Hier die richtige Datei.
https://www.herber.de/bbs/user/72743.zip

Gruß Sepp

AW: Aus 2 Tab.-blättern identische Datensätze finden
20.12.2010 11:05:43
Mike
Hallo Sepp,
es funktioniert!!! Ich danke Dir tausendmal, dass hat mir sehr viel Arbeit gespart. Danke.
Gruß
Mike
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige