Microsoft Excel

Herbers Excel/VBA-Archiv

Dateien vergleichen (Zeileninhalte)

Betrifft: Dateien vergleichen (Zeileninhalte) von: thema
Geschrieben am: 29.07.2008 13:08:57

Liebe EXperts!
Welche Möglichkeiten gibt es zwei EXCEL-Dateien zu vergleichen?
D.h. es müssen Zeilen (nicht nur Zellen)-Inhalte miteinander verglichen werden: unterschiedliche Zeileninhalte markiert/herausgefunden werden.
(Office 2003 oder Office 2007)

Ganz vielen Dank für Hinweise und Tipps.

Gruss TheMa

  

Betrifft: AW: Dateien vergleichen (Zeileninhalte) von: fcs
Geschrieben am: 30.07.2008 10:24:14

Hallo TheMa,

wenn du zeilenweise vergleichen möchtest/kannst, dann kannst du mit dem folgenden Makro als Startpunkt arbeiten.

Falls die Dateien unterschiedlich sortiert sind oder eine Spalte ein Schlüsselfeld enthält das jede Zeile eindeutig kennzeichnet, dann muss man den Vergleich anders aufbauen.
Dann muss das Schlüsselfeld aus der Vergleichsdatei im Original gesucht werden und dann die Zeilen verglichen werden.
Noch komplizierter wird es, wenn man auch die Zeilen erfassen/markieren will, die im Original vorhanden, in der Vergleichsdatei aber gelöscht wurden.

Gruß
Franz

Sub Vergleich()
  Dim wbOriginal As Workbook, wbVergleich As Workbook
  Dim varDateiname
  Dim wksOriginal As Worksheet, wksVergleich As Worksheet
  Dim lngZeile As Long, lngSpalte As Long
  Const lngFarbe As Long = 6 'gelb = markierfarbe für Unterschiede
  'Original-Datei schreibgeschützt öffnen
  varDateiname = Application.GetOpenFilename(Filefilter:="Exceldatei (*.xls), *.xls", _
        Title:="Bitte Originaldatei öffnen")
  If varDateiname = False Then Exit Sub
  Set wbOriginal = Application.Workbooks.Open(Filename:=varDateiname, ReadOnly:=True)
  'Vergleich-Datei öffnen
  varDateiname = Application.GetOpenFilename(Filefilter:="Exceldatei (*.xls), *.xls", _
        Title:="Bitte Vergleichdatei öffnen")
  If varDateiname = False Then
    wbOriginal.Close savechanges = False
    Exit Sub
  End If
  Set wbVergleich = Application.Workbooks.Open(Filename:=varDateiname)
  'zu vergleichende Tabellen setzen
  Set wksOriginal = wbOriginal.Worksheets(1) 'Datei-Original 1. Tabelle
  Set wksVergleich = wbVergleich.Worksheets(1) 'Vergleich-Original 1. Tabelle
  Application.ScreenUpdating = False
  'Tabellen vergleichen und in Vergleichtabelle markieren
  With wksVergleich
    For lngZeile = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Row
      For lngSpalte = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Column
        If .Cells(lngZeile, lngSpalte).Value <> wksOriginal.Cells(lngZeile, lngSpalte).Value  _
Then
          .Cells(lngZeile, lngSpalte).Interior.ColorIndex = lngFarbe
        End If
      Next
    Next
  End With
  Application.ScreenUpdating = True
End Sub




 

Beiträge aus den Excel-Beispielen zum Thema "Dateien vergleichen (Zeileninhalte)"