Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1400to1404
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

2 Excel Tabellen auf Unterschiede vergleichen

2 Excel Tabellen auf Unterschiede vergleichen
13.01.2015 10:46:57
Fabian
Hallo alle zusammen,
ich treibe mich auf der Suche nach einer Lösung für mein Problem jetzt schon eine gewisse Zeit im Forum umher, wobei ich leider, mit Hilfe der Suche, nichts finden konnte und deshalb eure Hilfe benötige.
Und zwar möchte ich 2 Tabellen auf Unterschiede vergleichen und diese Unterschiede in einer dritten Tabelle ausgeben.
Dabei soll immer die ganze Zeile ausgegeben werden.
(Das i-Tüpfelchen wäre noch wenn die veränderte Zelle farbig dargestellt wird, wobei dies nicht mein vorrangiges Problem ist)
Diese beiden Tabellen sind komplett gleich aufgebaut, sie werden nur mit der Zeit aktualisiert und die Veränderungen müssen dargestellt werden.
Ich habe dazu schon einen VBA Code im Internet gefunden und diesen soweit wie möglich für mich angepasst.
Ich möchte aber gerne zuerst die Zeile 1 von Tabelle 1 haben und darunter dann die Zeile 1 von Tabelle 2 und dies dann wieder von neuem.
Leider gibt er mir nur die Änderungen an einer Tabelle aus. :-(
Eine Beispieltabelle mit dem VBA Code füge ich bei.
Das Ergebnis, so wie ich es gerne hätte, habe ich als Bild hinzugefügt. Die letzte Spalte: „Aus Tabelle …“ soll nicht zum Ergebnis gehören, nur die Lesbarkeit für euch vereinfachen.
Da es im Großen und Ganzen nicht mein eigener Code ist:
Den Code habe ich von der Seite http://www.office-loesung.de/ftopic350883_0_0_asc.php
von Adelhorst übernommen und versucht zu verbessern.
https://www.herber.de/bbs/user/94960.xlsm
Userbild
In der Datei gibt es noch eine Tabelle 3. Diese ist für meine Zwecke nicht nötig, wobei ich nicht genau wusste wie ich die im Code entfernen kann und diese nicht stört.
Die Ausgabe erfolgt in Tabelle 4.
Ich würde mich riesig freuen wenn Ihr mir weiterhelfen könntet.
Euer Fabi

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Excel Tabellen auf Unterschiede vergleichen
13.01.2015 11:25:55
Rudi
Hallo,
Sub vergleich()
Dim arr(1), i As Long, j As Long, b As Boolean
For i = 2 To Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row
b = True
arr(0) = Tabelle1.Cells(i, 1).Resize(, 5)
arr(1) = Tabelle2.Cells(i, 1).Resize(, 5)
For j = 1 To 5
b = b And (arr(0)(1, j) = arr(1)(1, j))
Next j
If Not b Then
With Tabelle4
.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5) = arr(0)
.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5) = arr(1)
End With
End If
Next i
End Sub

Gruß
Rudi

AW: 2 Excel Tabellen auf Unterschiede vergleichen
13.01.2015 11:48:45
Fabian
Hallo Rudi,
boa, dass ist ja der Hammer. Das klappt ja super.
Ich bin ganz hin und weg.
Vor allem ist der Code total übersichtlich.
Werde gleich mal schauen ob ich den Code nachvollziehen kann.
Ich bin dir echt tausend Dank schuldig.
Ich sitze da schon Ewigkeiten dran. Danke!
Gruß Fabi

Anzeige
AW: 2 Excel Tabellen auf Unterschiede vergleichen
13.01.2015 12:02:09
fcs
Hallo Fabian,
hier ein modifiziertes Makro, um das Ergebnis des Vergleichs der beiden Tabellen in der von dir gewünschten Form auszugeben.
Gruß
Franz
Public Sub Auswertung()
Dim lastRow1 As Long, lastRow2 As Long, lastRow4 As Long
Dim arr1 As Variant, arr2 As Variant, getCompare As Boolean
Dim r1 As Long, s1 As Long, rowErg As Long
Dim wks1 As Worksheet, wks2 As Worksheet, wksErgebnis As Worksheet
'zu vergleichende Tabellen
Set wks1 = Tabelle1
Set wks2 = Tabelle2
'E
Set wksErgebnis = Tabelle4
'***ScreenUpdating
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'***Einlesen
lastRow1 = wks1.Range("B" & Rows.Count).End(xlUp).Row
lastRow2 = wks2.Range("B" & Rows.Count).End(xlUp).Row
lastRow4 = wksErgebnis.Range("B" & Rows.Count).End(xlUp).Row
arr1 = wks1.Range("A1").Resize(lastRow1, 5)
arr2 = wks2.Range("A1").Resize(lastRow2, 5)
'***Tabelle4 aktualisieren
'***Zielbereiche löschen
wksErgebnis.Range("A2").Resize(lastRow4, 1).EntireRow.Delete
'***Zielbereiche neu füllen
rowErg = 2                      'Ab welcher Zeile will ich das Ergebnis eingetragen  _
haben
For r1 = 2 To lastRow1
getCompare = True
'***Spalten vergleichen
For s1 = 1 To 5
If arr2(r1, s1)  arr1(r1, s1) Then
If getCompare = True Then
wks1.Cells(r1, 1).EntireRow.Copy wksErgebnis.Cells(rowErg, 1)
wks2.Cells(r1, 1).EntireRow.Copy wksErgebnis.Cells(rowErg + 1, 1)
getCompare = False
wksErgebnis.Cells(rowErg, 6) = wks1.Name
wksErgebnis.Cells(rowErg, 7) = r1
wksErgebnis.Cells(rowErg + 1, 6) = wks2.Name
wksErgebnis.Cells(rowErg + 1, 7) = r1
End If
wksErgebnis.Cells(rowErg, s1).Interior.ColorIndex = 4
wksErgebnis.Cells(rowErg + 1, s1).Interior.ColorIndex = 6
End If
Next s1
'***Zeilenzähler in Tabelle4 erhöhen für nächsten Eintrag
If getCompare = False Then
rowErg = rowErg + 2
End If
Next r1
'***ScreenUpdating
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
'***Erfolgsmeldung
MsgBox "Tabelle4 aktualisiert!"
End Sub

Anzeige
AW: 2 Excel Tabellen auf Unterschiede vergleichen
13.01.2015 13:15:02
Fabian
Hallo Franz,
ich danke dir. Das ist ja genauso gut, bzw. für mich mit der eingebauten Farbe sogar noch besser. :-)
Genau so benötige ich das Ganze.
Einfach super, tausend Dank euch beiden.
Gruß Fabi

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige