Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1144to1148
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

sind beide Tabellen identisch?

sind beide Tabellen identisch?
tco99

Hallo zusammen,
ich habe eine Frage bzw. Bitte, die etwas von den normalerweise gestellten Fragen dieser Art abweicht.
Ich habe zwei Tabellen in einer Datei. Ich interessiere mich dafür, ob die Tabellen exakt den gleichen Inhalt haben. Wie groß die Abweichungen sind, in welcher Zeile oder Spalte sich die Unterschiede befinden oder was genau die Unterschiede sind, ist hier nicht von Bedeutung.
Die Dimensionen beider Tabellen gehen von A1 bis knapp vor IV(Zahl), aber nicht in der mitgesendeten Beispielmappe.
Gibt es dazu ein Makro, welches prüft, ob es einen inhaltlichen Unterschied zwischen den beiden Tabellen gibt?
Noch eine kurze Erklärung: wenn die Inhalte identisch sind, möchte ich ein anderes Makro anstoßen, als wenn die Inhalte nicht identisch sind, daher müsste ich das wissen.
Ich habe dazu eine kleine Bespielmappe gemacht. In dieser Beispielmappe ist in der Tabelle 1 ein Unterschied zur Tabelle 2:
https://www.herber.de/bbs/user/68592.zip
Gruß
Erdogan
PS: Feedback ist selbstverständlich.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: sind beide Tabellen identisch?
16.03.2010 18:05:56
fcs
Hallo Erdogan,
hier mal 2 Varianten.
Function CompareSheets erfasst ggf. auch Bereiche mit Formatierungen, die außerhalb der eigentlichen Daten liegen und kann unterschiedliche Tabellen anzeigen, auch wenn die eigentlichen Daten identisch sind.
Function CompareSheets2 ermittelt in Zeile 1 die die letzte Spalte mit Daten und in Spalte A die letzte Zeile mit Daten und vergleicht dann den sich daraus ergebenden Zellbereich.
Gruß
Franz
Sub Test()
If CompareSheets(wks1:=ActiveWorkbook.Sheets(1), _
wks2:=ActiveWorkbook.Sheets(2)) = True Then
MsgBox "Tabellen sind identisch", vbInformation + vbOKOnly, "Function CompareSheets"
Else
MsgBox "Tabellen sind verschieden", vbInformation + vbOKOnly, "Function CompareSheets"
End If
If CompareSheets2(wks1:=ActiveWorkbook.Sheets(1), _
wks2:=ActiveWorkbook.Sheets(2)) = True Then
MsgBox "Tabellen sind identisch", vbInformation + vbOKOnly, "Function CompareSheets2"
Else
MsgBox "Tabellen sind verschieden", vbInformation + vbOKOnly, "Function CompareSheets2"
End If
End Sub
Function CompareSheets(wks1 As Worksheet, wks2 As Worksheet) As Boolean
Dim Zelle As Range
CompareSheets = True
If wks1.UsedRange.Rows.Count  wks2.UsedRange.Rows.Count Or _
wks1.UsedRange.Columns.Count  wks2.UsedRange.Columns.Count Then
CompareSheets = False
Else
For Each Zelle In wks1.UsedRange.Cells
If Zelle  wks2.Range(Zelle.Address) Then
CompareSheets = False
Exit For
End If
Next
End If
End Function
Function CompareSheets2(wks1 As Worksheet, wks2 As Worksheet) As Boolean
Dim Zelle As Range
Dim Zeilen1 As Long, Spalten1 As Long
Dim Zeilen2 As Long, Spalten2 As Long
CompareSheets2 = True
With wks1
'Zeilen in SPalte A
Zeilen1 = .Cells(.Rows.Count, 1).End(xlUp).Row
'Spalten in Zeile 1
Spalten1 = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
With wks2
'Zeilen in SPalte A
Zeilen2 = .Cells(.Rows.Count, 1).End(xlUp).Row
'Spalten in Zeile 1
Spalten2 = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
If Zeilen1  Zeilen2 Or _
Spalten1  Spalten2 Then
CompareSheets2 = False
Else
For Each Zelle In wks1.Range(wks1.Cells(1, 1), wks1.Cells(Zeilen1, Spalten1)).Cells
If Zelle  wks2.Range(Zelle.Address) Then
CompareSheets2 = False
Exit For
End If
Next
End If
End Function

Anzeige
AW: sind beide Tabellen identisch?
16.03.2010 23:52:36
TCO99
Hallo Franz,
entschuldige bitte die späte Antwort. Bin erst jetzt zuhause. Ich baue es in meine Beispielmappe ein und mache dann mein Feedback.
Jetzt schon vielen Dank für deine Hilfe!
Viele Grüße
Erdogan
AW: sind beide Tabellen identisch?
17.03.2010 00:13:13
TCO99
Hallo Franz,
es funktioniert super!
Ich hätte gedacht, dass der Vergleich länger dauert. Aber es geht super schnell.
Vielen vielen Dank!
Viele Grüße
Erdogan
Für alle, die dieses Makro verwenden möchten: ich nutze eine zweite Exceldatei, die ich als eine Art Datenbank verwende. Wenn Veränderungen in der Datenbank gemacht wurden, möchte ich die Daten in der ersten Datei updaten. Wenn keine Abweichungen existieren, soll das Update nicht erfolgen. Das Makro ist super dazu geeignet, den Updateprozess zu steuern.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige