Anzeige
Archiv - Navigation
1100to1104
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 Dateien abgleichen

2 Dateien abgleichen
Bernd
Hallo,
ich habe Datei A. Kopie von Datei A wird einer Person zur Verfügung gestellt. Die Person kann darin tun und lassen was sie will.
Nachdem die Person fertig ist bekomme ich die Datei zurück.
Nun möchte ich sehen was die Person geändert hat.
Kann ich meine Datei A mit der Kopie irgendwie abgleichen?
Keine Ahnung wie, aber evtl. vergleiche A1 mit A1 wenn gleich dann B1 mit B1 wenn unterschied schreibe in Datei A in Blatt "unterschiede" beginnend in A1 die veränderte Zelle (in diesem Fall steht dann in A1 "B1".
usw. von A - Z und von 1 - 200 (das ist der beschriebene Bereich in der Datei.
ich hoffe mich einigermassen verständlich ausgedrückt zu haben. wenn nicht bitte nachfragen.
Vielen Dank für eure Hilfe

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: 2 Dateien abgleichen
09.09.2009 22:35:57
Josef
Hallo Bernd,
Code kommt in die Originaldatei. Kommentare beachten.
Sub vergleich()
  Dim varA As Variant, varB As Variant, varComp() As Variant
  Dim objSh As Worksheet
  Dim lngRow As Long, lngCol As Long, lngIndex As Long
  
  varA = ThisWorkbook.Sheets("Tabelle1").Range("A1:Z200") 'Originaltabelle - Anpassen!
  varB = Workbooks("DateiB.xls").Sheets("Tabelle1").Range("A1:Z200") 'Kopietabelle - Anpassen!
  
  Redim varComp(lngIndex)
  varComp(0) = "Zelle;Original;Neu"
  
  For lngRow = 1 To UBound(varA, 1)
    For lngCol = 1 To UBound(varA, 2)
      If varA(lngRow, lngCol) <> varB(lngRow, lngCol) Then
        lngIndex = lngIndex + 1
        Redim Preserve varComp(lngIndex)
        varComp(lngIndex) = Cells(lngRow, lngCol).Address(0, 0) & ";" & varA(lngRow, lngCol) & ";" & varB(lngRow, lngCol)
      End If
    Next
  Next
  
  If lngIndex > 0 Then
    Set objSh = ThisWorkbook.Worksheets.Add
    With objSh
      .Name = "Protokoll " & Format(Now, "ddMMyyyy hh_mm_ss")
      .Range("A1:A" & CStr(lngIndex + 1)) = Application.Transpose(varComp)
      .Range("A1:A" & CStr(lngIndex + 1)).TextToColumns _
        Destination:=.Range("A1"), _
        DataType:=xlDelimited, _
        TextQualifier:=xlTextQualifierDoubleQuote, _
        Tab:=False, Semicolon:=True, Comma:=False, _
        Space:=False, Other:=False
      .Rows(1).Font.Bold = True
      .Columns.AutoFit
    End With
  Else
    MsgBox "Keine Unterschiede gefunden", vbInformation, "Hinweis"
  End If
  
  Set objSh = Nothing
End Sub

Gruß Sepp

Anzeige
AW: 2 Dateien abgleichen
09.09.2009 22:47:40
Bernd
Hi Sepp,
werde es morgen testen. Vielen Dank dafür.
Gebe dann eine Rückmeldung
Gruß Bernd
Funzt super, vielen Dank. o.w.t.
10.09.2009 07:21:39
Bernd
.
doch noch eine nachfrage
10.09.2009 12:30:45
Bernd
ich habe den code über mehrere tabellen laufen lassen, alles ok.
nur bei einer tabelle hängt sich der coe auf und sagt als fehlermeldung:
Laufzeitfehler 13
Typen unverträglich
hier bleibt er dann stehen:
.Range("A1:A" & CStr(lngIndex + 1)) = Application.Transpose(varComp)
was kann das sein? die tabellen sind vom aufbau her alle gleich
Gruß Bernd
AW: doch noch eine nachfrage
10.09.2009 20:04:08
Josef
Hallo Bernd,
kann ich mir (und dir) ohne die Tabelle zu sehen nicht erklären.
Gruß Sepp

Anzeige
AW: doch noch eine nachfrage
11.09.2009 16:04:00
Bernd
hi Sepp,
hat sich geklärt.
In einer Zelle war ein Text mit 240 Zeichen. ich habe diesen Text gekürzt und der Code hat dann wieder gefunzt.
Vielleicht waren die vielen Zeichen das Problem, keine Ahnung.
Danke für deine Mühe
Gruß Bernd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige