Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellen vergleichen - 2.Tabelle aktualisieren

Tabellen vergleichen - 2.Tabelle aktualisieren
09.03.2005 13:21:07
BerndSchweiger
Hallo,
folgendes Problem:
Ich möchte 2 Tabellen in Excel miteinander vergleichen (Tabelle1 und Tabelle2) und die Tabelle2 entsprechend aktualisieren.
Es sind jeweils 7 Spalten (A-G) vorhanden, wobei die erste Zeile die Überschriften beinhaltet, danach kommt der Dateninhalt (von Spalte D-G nicht zwingend ein Inhalt vorhanden)
Tabelle1 wird täglich neu erzeugt und danach sollte dadurch Tabelle2 demzufolge geändert werden:
- Neue Datensätze aus Tabelle1 sollen bei Tabelle 2 nach der letzten Zeile mit Inhalt angefügt werden
- Datensätze, welche nicht mehr in Tabelle1 erscheinen, dürfen jedoch nicht aus Tabelle2 gelöscht werden.
- schon vorhandene Datensätze sollen nicht in Tabelle 2 überschrieben bzw. aktualisiert werden (komplette Zeileninhalte von Spalte A-G müssen verglichen werden)
Kann mir hierbei jemand helfen, einen entsprechen VBA-Code zu erstellen.
Alle meinerseits gefunden Codes legen eine 3 Tabelle an oder überschreiben die bestehenden Zeilen! Komme also alleine nicht mehr weiter – bin auf Eure Hilfe angewiesen.
1. Hier ist z. B. ein Teil, der die Daten aktualisiert oder in eine neue Zeile schreibt:
'Ausgabe der Daten

For i = 1 To AnzahlAufträge
'Ist der Datensatz schon vorhanden?
Cells(1, 1).Select
Selection.CurrentRegion.Select
BereichZeilen = Selection.Rows.Count
For Each zelle In ActiveSheet.Cells.Range("A:A")
If CStr(zelle.Value) = "" Then Exit For
If CStr(zelle.Value) = CStr(daten(i, 1)) Then
'vorhandenen Eintrag aktualisieren
Cells(zelle.Row, zelle.Column).Select
Application.StatusBar = "Aktualisierung von " & daten(i, 1 & " ..."
Call DatenAusgeben(daten, i)
aktualisieren = True
Exit For
End If
Next
'neuer Eintrag -&gt neue Zeile anfügen
If aktualisieren = False Then
Cells(BereichZeilen, 1).Offset(1, 0).EntireRow.Select
Selection.Copy
Application.CutCopyMode = False
Selection.Insert Shift:=xlShiftDown
Cells(Selection.Row, 1).Select
Application.StatusBar = "neuer Eintrag: " & daten(i, 1) & " ..."
Call DatenAusgeben(daten, i)
End If
aktualisieren = False
Next i

Vielen Dank schon jetzt für Eure Bemühungen!!!
Gruß
Bernd
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellen vergleichen - 2.Tabelle aktualisieren
09.03.2005 17:15:45
Rolf
Hallo Bernd,
vielleicht hilft dir das.
Die 1. Prozedur setzt bei abweichenden Werten Kommentare in Sheet(1);
die 2. Prozedur steuert die Kommentare an + fragt, ob der Wert überschrieben werden soll. Den Bearbeitungsbereich (B1) musst du deinen Bedürfnissen anpassen.
FG
Rolf

Sub vergleich_plus_kommentar_bei_abweichung()
On Error Resume Next
Dim B2 As Worksheet
Dim B1 As Range, c As Range
Dim v As Double
Set B1 = Sheets(1).Range("A1:T30")
Set B2 = Sheets(2)
For Each c In B1
v = B2.Range(c.Address).Value
If c.Value <> v Then
c.AddComment
c.Comment.Text Text:=Str(v)
End If
Next
End Sub


Sub übernahme_abfrage()
Dim cmt As Object
Dim rc As Variant
Set cmt = Worksheets(1).Comments
For Each c In cmt
Range(c.Parent.Address).Select
rc = MsgBox("Soll der Kommentarwert " & c.Text _
& " in die aktuelle Zelle übertragen werden", vbYesNo)
Select Case rc
Case Is = 6
Range(c.Parent.Address) = Val(c.Text)
c.Delete
Case Is = 7
c.Delete
End Select
Next
End Sub


Anzeige
AW: Tabellen vergleichen - 2.Tabelle aktualisieren
09.03.2005 17:27:00
BerndSchweiger
Danke Rolf
Komme heute aber leider nicht mehr zum Testen - morgen dann
Aber die letzten winzigen Änderungen bekomm ich hoffentlich noch alleine hin.
Nochmals tausend Dank
Bernd
hat's geklappt? oT
10.03.2005 12:18:27
Rolf
..
Jow
10.03.2005 12:54:41
BerndSchweiger
Jow, hat super geklappt (nach ner kleinen Änderung)
Nochmals vielen Dank
Bernd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Tabellen vergleichen und aktualisieren in Excel


Schritt-für-Schritt-Anleitung

Um zwei Tabellen in Excel zu vergleichen und die zweite Tabelle zu aktualisieren, kannst Du folgende Schritte befolgen:

  1. Vorbereitung der Tabellen:

    • Stelle sicher, dass beide Tabellen in unterschiedlichen Arbeitsblättern angeordnet sind (z.B. Sheet1 für Tabelle1 und Sheet2 für Tabelle2).
    • Die Tabellen sollten in den Spalten A bis G strukturiert sein, wobei die erste Zeile die Überschriften enthält.
  2. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Neues Modul erstellen:

    • Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsm), wähle Einfügen und dann Modul.
  4. VBA-Code einfügen:

    • Kopiere den folgenden Code in das Modul:
    Sub TabellenVergleichenUndAktualisieren()
       Dim ws1 As Worksheet, ws2 As Worksheet
       Dim lastRow1 As Long, lastRow2 As Long
       Dim i As Long, j As Long
       Dim found As Boolean
    
       Set ws1 = ThisWorkbook.Sheets(1) ' Tabelle1
       Set ws2 = ThisWorkbook.Sheets(2) ' Tabelle2
    
       lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
       lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
    
       For i = 2 To lastRow1 ' Überspringe die Header-Zeile
           found = False
           For j = 2 To lastRow2
               If ws1.Cells(i, 1).Value = ws2.Cells(j, 1).Value Then
                   found = True
                   Exit For
               End If
           Next j
           If Not found Then
               lastRow2 = lastRow2 + 1
               ws2.Cells(lastRow2, 1).Value = ws1.Cells(i, 1).Value
               ' Weitere Spalten hier hinzufügen, falls notwendig
           End If
       Next i
    End Sub
  5. Makro ausführen:

    • Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle TabellenVergleichenUndAktualisieren und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: Makro läuft nicht.

    • Lösung: Stelle sicher, dass Du die Makros in Excel aktiviert hast. Gehe zu Datei -> Optionen -> Trust Center -> Einstellungen für das Trust Center -> Makroeinstellungen.
  • Fehler: Daten werden überschrieben.

    • Lösung: Überprüfe den Code, um sicherzustellen, dass er nur neue Daten hinzufügt und keine bestehenden Daten überschreibt.
  • Fehler: Tabelle nicht gefunden.

    • Lösung: Stelle sicher, dass die Arbeitsblätter korrekt benannt sind oder passe die Referenzen im Code an.

Alternative Methoden

Eine weitere Methode, um Excel-Tabellen zu vergleichen, ist die Verwendung von Formeln wie VERGLEICH oder SVERWEIS. Diese Formeln können helfen, Abweichungen zwischen zwei Tabellen zu identifizieren, ohne VBA zu verwenden.


Praktische Beispiele

Hier ist ein Beispiel, wie Du zwei Tabellen übereinander legen und die Abweichungen hervorheben kannst:

  1. Verwende die Formel =WENN(A2<>Sheet2!A2; "Abweichung"; "") in einer neuen Spalte neben den Daten der ersten Tabelle.
  2. Ziehe die Formel nach unten, um sie auf alle Zeilen anzuwenden.

Diese Methode ermöglicht es Dir, schnell Abweichungen zwischen den beiden Tabellen zu erkennen.


Tipps für Profis

  • Nutze bedingte Formatierung, um Unterschiede zwischen den Tabellen visuell hervorzuheben.
  • Automatisiere den Prozess mit zeitgesteuerten Makros, die die Tabellen regelmäßig vergleichen und aktualisieren.
  • Experimentiere mit VBA, um komplexere Logiken zu implementieren, beispielsweise das Speichern von Änderungsprotokollen.

FAQ: Häufige Fragen

1. Wie kann ich Excel-Tabellen vergleichen, ohne VBA zu verwenden?
Du kannst Formeln wie VERGLEICH oder SVERWEIS verwenden, um Abweichungen zwischen den Tabellen zu identifizieren.

2. Was ist, wenn ich nur bestimmte Spalten vergleichen möchte?
Du kannst den VBA-Code anpassen, um nur die gewünschten Spalten zu vergleichen, indem Du die entsprechenden Zellreferenzen im Code änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige