Thema Datum  Von Nutzer Rating
Antwort
Rot Inhalte zweier Tabellen vergleichen, bestimmte Zeilen ignorieren
24.03.2014 14:44:41 TimmTimm
NotSolved

Ansicht des Beitrags:
Von:
TimmTimm
Datum:
24.03.2014 14:44:41
Views:
1128
Rating: Antwort:
  Ja
Thema:
Inhalte zweier Tabellen vergleichen, bestimmte Zeilen ignorieren

Liebes VBA-Forum,

 

ich hatte vor kurzem eine Frage, die ganz gut gelöst wurde (siehe 2 Tabellen miteinander vergleichen - Unterschiedliche Zellen markieren!).

Der Lösungsansatz aus diesem Forum war folgender:

Private Sub CommandButton2_Click()
Dim AltRng As Range  'Quellbereich
Dim c As Range  'Durchlauf
 
  Set AltSh = ActiveWorkbook.Sheets("Alt"'Quelle bestimmen
  Set ActSh = ActiveWorkbook.Sheets("Aktuell"'Ziel bestimmen
 
  Set AltRng = AltSh.Range("A1").CurrentRegion  'benutzter Quellbereich
 
Rem ich möchte aber nur, dass die jeweiligen Zellen markiert werden
 
  For Each c In AltRng  'durch den Bereich
    With ActSh.Range(c.Address) 'gleicher Bereich in Zieltabelle
      '
      If .Value <> c.Value Then .Interior.ColorIndex = 6  'Prüfung
      '
    End With
  Next c
  ActSh.Select
  Range("A1").Select
  
'Unload Me  '<- wieder einsetzen
 
End Sub
----------------
 
Nun habe ich aber das Problem, dass eine Tabelle die Aktualisierung der Anderen ist und Unterschiede auch durch eine neu hinzugefügte Zeile entstehen kann. Dann sind nämlich alle Zeilen unter der neuen Zeile verschieden zu der Urspungstabelle. In meiner urspünglichen Version des Codes war das nicht so, da hatte ich allerdings das Prob, dass die komplette Zeile farblich markiert wird!!! Bin blutiger Anfänger, daher kann es sein, dass meine Codes nicht soviel Sinn ergeben...
 
So sah mein Code aus:
 
 
Private Sub CommandButton2_Click()

   Dim rng As Range
   Dim lRow As Long, lRowT As Long
   Dim iCol As Integer
   Dim bln As Boolean
   Set rng = Worksheets("Alt").Range("A1").CurrentRegion
   Sheets("Aktuell").Activate
   For lRow = 1 To Range("A1").CurrentRegion.Rows.Count
     bln = True
     For lRowT = 1 To rng.Rows.Count
    
         For iCol = 1 To 400
            If Cells(lRow, iCol) <> rng(lRowT, iCol) Then
               bln = False
               Exit For
           End If
         Next iCol
         If bln = True Then
            Exit For
         ElseIf lRowT < rng.Rows.Count Then

            bln = True
        End If
      Next lRowT
      If bln = False Then
       Range(Cells(lRow, 1), Cells(lRow, 400)).Interior.ColorIndex = 6
   
    
      End If
   Next lRow
 
 
-------
Hat jemand eine Ahnung, warum ausgerechnet in meinem Code das Programm versteht, dass die Zeilen nach der neu hinzugefügten Zeile identisch mit der Urspungstabelle sind? Wie kann ich das bei dem neuen Code angewendet werden?

 


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 Inhalte zweier Tabellen vergleichen, bestimmte Zeilen ignorieren
24.03.2014 14:44:41 TimmTimm
NotSolved