Thema Datum  Von Nutzer Rating
Antwort
Rot Dateiübergreifender inhaltlicher Vergleich von Spalte "A.A" in 2 verschiedenen Dateien
27.02.2018 11:43:17 Shady
Solved
27.02.2018 11:45:49 Gast72164
Solved

Ansicht des Beitrags:
Von:
Shady
Datum:
27.02.2018 11:43:17
Views:
1214
Rating: Antwort:
 Nein
Thema:
Dateiübergreifender inhaltlicher Vergleich von Spalte "A.A" in 2 verschiedenen Dateien

Hallo

Ich bräuchte etwas hilfe bei meinem code

Es geht um den Vergleich zweier Exeldateien, die jeweis in Spalte A:A mit bliebig Daten gefüllt sind.

Jetzt will ich mit einem Makro durch einen butten zwei Dateien auswählen und diese dann inhltlich vergleichen lassen, aber nicht durch einfachen Zelle vergleich.

Ich denke am besten wäre es die Dateien im dictionary als Objekt zu speichern, habe aber noch keine Erfahrung damit.

Beispiel:

Datei 1

Spalte 1 

1
2
3
100RB1MA1
100RB2BGE19
100RB2BGE101
100RB2BGE102
100RB2MA1
100IS1KFA1
102FX1BGE103
102FX1KK1
102FX1KK1B
102FX1KKP1
102HT1BGE103
102FX1BGE105
102FX1BP1
102HT1BGE105
102HT1BGE130
102HT1BGE131
102HT1BGE150
102HT1BGE151
102HT1BGG1
 
Datei 2
 
6
7
8
100RB1MA1
100RB2BGE19
100RB2BGE101
100RB2BGE102
100RB2MA1
100IS1KFA1
102FX1BGE103
102FX1KK1
102FX1KK1B
102HT1BGE103
102FX1BGE105
102FX1BP1
102HT1BGE105
102HT1BGE130
102FX1KKP1
102HT1BGE131
102HT1BGE150
102HT1BGE151
102HT1BGG1
Option Explicit

    Dim sDateiName1 As String
    Dim sDateiName2 As String
    Dim bDateiNum1 As Byte
    Dim bDateiNum2 As Byte

Private Sub CommandButton1_Click()

    Call GetOpen_FileName
    'Call Vergleich_Arbeitsmappen
    
End Sub

Private Sub GetOpen_FileName()
    
    Dim sPfadName1 As Variant
    Dim sPfadName2 As Variant
    Dim i As Integer
    Dim n As Long
    Dim x As Long
    Dim lName1 As Long
    Dim lName2 As Long
    Dim iWorkbook As Integer
    Dim wb1 As Workbook
    Dim wb2 As Workbook
    
    MsgBox "Wählen Sie die beiden Exceltabellen die Verglichen werden sollen.", vbQuestion & vbOKOnly, "Info"
    ChDrive "T"
    ChDir "T:\delme\Ruckes\Vergleich"
          
    sPfadName1 = Application.GetOpenFilename("Excel-Dateien (*.xl??), *.xl??", Title:="Bitte Exceldatei auswählen")
    'Extraktion des Mappennamen
    If Not sPfadName1 = False Then
      Workbooks.Open sPfadName1
      sPfadName1 = Mid$(sPfadName1, InStrRev(sPfadName1, "\") + 1)
      x = (InStrRev(CStr(sPfadName1), ".") - 1)
      lName1 = Len(sPfadName1) - (Len(sPfadName1) - x)
      sDateiName1 = Left(sPfadName1, lName1)
      'MsgBox (sDateiName1)
    Else
      Exit Sub
    End If
    
    sPfadName2 = Application.GetOpenFilename("Excel-Dateien (*.xl??), *.xl??", Title:="Bitte die Vergleichsdatei auswählen")
    
    If Not sPfadName2 = False Then
      Workbooks.Open sPfadName2
      sPfadName2 = Mid$(sPfadName2, InStrRev(sPfadName2, "\") + 1)
      i = (InStrRev(CStr(sPfadName2), ".") - 1)
      lName2 = Len(sPfadName2) - (Len(sPfadName2) - i)
      sDateiName2 = Left(sPfadName2, lName2)
      'MsgBox (sDateiName2)
    Else
      Exit Sub
    End If
    
    Set wb1 = Workbooks(sDateiName1)
    Set wb2 = Workbooks(sDateiName2)
    
    For iWorkbook = 1 To Workbooks.Count
      If Workbooks(iWorkbook).Name = wb1.Name Then
        bDateiNum1 = iWorkbook
      End If
      
      If Workbooks(iWorkbook).Name = wb2.Name Then
        bDateiNum2 = iWorkbook
      End If
    Next iWorkbook
    
End Sub

Private Sub Vergleich_Arbeitsmappen()

    'Vergleich von Mappe X mit Mappe Y
    Dim intWB As Integer, intWS As Integer
    Dim objDic As Object
    Dim regObj As Range
    
    Set objDic = CreateObject("scripting.dictionary")

    'Vergleich Anzahl der Tabellenblätter
    If Workbooks(sDateiName1).Worksheets.Count <> Workbooks(sDateiName2).Worksheets.Count Then
      MsgBox "Die Anzahl der Tabellenblätter ist unterschiedlich!"
    End If

    'Vergleich der benutzen Zellen
    For intWS = 1 To Workbooks(sDateiName1).Worksheets.Count
      If Workbooks(sDateiName1).Worksheets(intWS).UsedRange.Cells.Count <> Workbooks(sDateiName2).Worksheets(intWS).UsedRange.Cells.Count Then
        MsgBox "Die Anzahl der benutzen Zellen in Blatt " & intWS & " " & "ist unterschiedlich!"
      End If

    'Vergleich der Zellinhalte
      For Each regObj In Workbooks(sDateiName1).Worksheets(intWS).UsedRange
        If Not regObj = "" Then
          If regObj.Value <> Workbooks(sDateiName2).Worksheets(intWS).Range(regObj.Address).Value Then
            For intWB = bDateiNum1 To bDateiNum2
              Workbooks(intWB).Worksheets(intWS).Activate
              ActiveSheet.Range(regObj.Address).Interior.ColorIndex = 3
            Next
          Else
            For intWB = bDateiNum1 To bDateiNum2
              Workbooks(intWB).Worksheets(intWS).Activate
              ActiveSheet.Range(regObj.Address).Interior.ColorIndex = 4
            Next
          End If
        End If
      Next
    Next
End Sub

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Dateiübergreifender inhaltlicher Vergleich von Spalte "A.A" in 2 verschiedenen Dateien
27.02.2018 11:43:17 Shady
Solved
27.02.2018 11:45:49 Gast72164
Solved