Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellen vergleichen bei Übereinstimmung kopieren

Tabellen vergleichen bei Übereinstimmung kopieren
08.09.2017 09:46:03
Julia
Hallo liebes Forum,
ich arbeite täglich an einer Excel-Datenbank, die ich gerne automatisieren würde.
Und zwar sollen Daten aus Spalte 1 in Tabelle 1 mit Daten aus Spalte 4 in Tabelle 2 verglichen werden. Sofern Zellwerte identisch, soll der dazugehörige Wert der Zelle aus Spalte 5 Tabelle 2 in Spalte 2 Tabelle 1 kopiert werden.
Meine VBA Kenntnisse sind leider schwach. Habt Ihr einen Lösungsvorschlag für mich?
Liebe Grüße
Julia
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen vergleichen bei Übereinstimmung kopieren
08.09.2017 09:47:04
SF
Hola,
dafür gibt es den Sverweis().
Gruß,
steve1da
AW: Tabellen vergleichen bei Übereinstimmung
08.09.2017 09:59:22
Julia
Hallo steve1da,
mit SVerweisen arbeite ich bereits, allerdings habe ich mehrere hundert Tabellen und möchte den Aufwand so weit wie möglich minimieren. Kann ich den SVerweis in VBA darstellen?
LG
Julia
AW: Tabellen vergleichen bei Übereinstimmung
08.09.2017 10:00:03
SF
Hola,
bestimmt - allerdings nicht mein Gebiet.
Gruß,
steve1da
Anzeige
AW: Tabellen vergleichen bei Übereinstimmung
08.09.2017 10:04:16
Julia
Schade... trotzdem danke! Jemand anders eine Idee?
AW: Tabellen vergleichen bei Übereinstimmung
08.09.2017 10:26:00
{Boris}
Hi,
wenn Du mit VBA nicht so vertraut bist, macht es Sinn, eine Beispieldatei mit EXAKT dem Aufbau / den Zellkoordinaten Deiner Originaldatei - am Besten noch mit händisch eingetragenem Wunschergebnis - hochzuladen.
Dann findet sich vielleicht jemand, der Dir den Code programmiert.
VG, Boris
Anzeige
AW: Tabellenvergleich
08.09.2017 10:43:04
MCO
Hallo Julia!
Selbstverständlich geht das. Schau mal, ob dir das hilft:

Sub Beispiel()
Dim Ber1 As Range
Dim Ber2 As Range
Dim gefunden As Range
Dim suchWert
Set Ber1 = Sheets("Tabelle1").Range("A:A").SpecialCells(xlCellTypeConstants)
Set Ber2 = Sheets("Tabelle2").Range("D:D")
For Each suchWert In Ber1
Set gefunden = Ber2.Find(suchWert, , , xlWhole) 'Suche, nur ganzer Begriff
If Not gefunden Is Nothing Then 'wenn gefunden
gefunden.Offset(0, 1).Copy suchWert.Offset(0, 1) 'Wert kopieren
gefunden.Offset(0, 1).Interior.Color = vbGreen 'optional: gefundene Werte grün  _
markieren
'Else
'nix gefunden
End If
Set gef = Nothing
Next suchWert
Set Ber1 = Nothing
Set Ber2 = Nothing
End Sub
Das Beispiel setzt voraus, dass beide Daten in der gleichen Arbeitsmappe stehen. Der Code muß entsprechend geändert werden, wenn die Vergleichswerte aus anderen Arbeitsmappen kommen sollen, oder diese auch noch geöffnet werden sollen.
Viel Erfolg!
Gruß, MCO
Anzeige
AW: Tabellenvergleich
08.09.2017 11:02:32
Julia
Hallo MCO,
danke für den Code. Das funktioniert prima :)
Das Anpassen der Arbeitsmappenpfade müsste ergänzt werden. Es gibt nämlich immer eine Arbeitsmappe und fünf Quellmappen, aus denen die Kosten übertragen werden sollen.
Zusätzlich gibt es das Problem, dass die relevanten Spalten in Tabelle 2 nicht immer in Spalte 4 sowie 5 sind, manchmal ist die Reihenfolge anders. Kann man den Code so ändern, dass in Tabelle 2 nach dem Spaltentitel/-kopf gesucht wird?
LG
Julia
Anzeige
AW: Tabellenvergleich
11.09.2017 13:22:16
MCO
Hallo Julia!
Ich habe die Quell-Dateien sofort separiert, den Pfad mußt du bei "B1" angeben, die Dateinamen ohne Endung in spalte "A". Es sollten dann xlsx-Dateien sein. Ansonsten mußt du den code anpassen.
Wichtig ist außerdem, eine Leerzelle zwischen den Materialkomponenten zu haben, damit die Bereiche auch als getrennt gesehen wird.
https://www.herber.de/bbs/user/116157.xlsm
Gruß, MCO
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Tabellen vergleichen und Werte übernehmen in Excel


Schritt-für-Schritt-Anleitung

Um Daten aus zwei Tabellen zu vergleichen und bei Übereinstimmung Werte zu übernehmen, kannst Du den folgenden VBA-Code verwenden. Dieser Code vergleicht die Werte in Spalte 1 von Tabelle 1 mit den Werten in Spalte 4 von Tabelle 2. Bei Übereinstimmung wird der Wert aus Spalte 5 von Tabelle 2 in Spalte 2 von Tabelle 1 kopiert.

  1. Öffne die Excel-Datei, in der Du die Tabellen vergleichen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Füge den folgenden Code in das Modul ein:

    Sub Beispiel()
       Dim Ber1 As Range
       Dim Ber2 As Range
       Dim gefunden As Range
       Dim suchWert
    
       Set Ber1 = Sheets("Tabelle1").Range("A:A").SpecialCells(xlCellTypeConstants)
       Set Ber2 = Sheets("Tabelle2").Range("D:D")
    
       For Each suchWert In Ber1
           Set gefunden = Ber2.Find(suchWert, , , xlWhole) ' Suche, nur ganzer Begriff
           If Not gefunden Is Nothing Then ' Wenn gefunden
               gefunden.Offset(0, 1).Copy suchWert.Offset(0, 1) ' Wert kopieren
               gefunden.Offset(0, 1).Interior.Color = vbGreen ' Optional: gefundene Werte grün markieren
           End If
           Set gefunden = Nothing
       Next suchWert
    
       Set Ber1 = Nothing
       Set Ber2 = Nothing
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Drücke ALT + F8, wähle Beispiel aus und klicke auf Ausführen.

Dieser Code setzt voraus, dass die Daten in der gleichen Arbeitsmappe stehen. Wenn Du Daten aus verschiedenen Arbeitsmappen vergleichen möchtest, musst Du den Code entsprechend anpassen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Die Methode 'SpecialCells' für das Objekt 'Range' ist fehlgeschlagen."

    • Lösung: Stelle sicher, dass es tatsächlich Werte in der Spalte gibt, die Du mit SpecialCells(xlCellTypeConstants) ansprechen möchtest.
  • Fehler: "Nichts gefunden."

    • Lösung: Überprüfe, ob die Datenformate zwischen Tabelle 1 und Tabelle 2 übereinstimmen. Manchmal können führende oder nachfolgende Leerzeichen zu Problemen führen.

Alternative Methoden

Falls Du keinen VBA-Code verwenden möchtest, kannst Du auch die Funktion SVERWEIS() in Excel nutzen, um Werte zu vergleichen und zu übernehmen. Hier ist ein einfaches Beispiel:

=SVERWEIS(A1;Tabelle2!D:E;2;FALSCH)

Diese Formel sucht den Wert aus A1 in Spalte D von Tabelle 2 und gibt den entsprechenden Wert aus Spalte E zurück.


Praktische Beispiele

Angenommen, Du hast folgende Daten in deinen Tabellen:

Tabelle 1: A B
ID Wert
101
102
Tabelle 2: D E
ID Wert
101 500
102 300

Nach dem Ausführen des Codes oder der Verwendung von SVERWEIS() würde Tabelle 1 wie folgt aussehen:

A B
ID Wert
101 500
102 300

Tipps für Profis

  • Wenn Du regelmäßig mit vielen Tabellen arbeitest, kann es hilfreich sein, Makros zu erstellen, die den gesamten Prozess automatisieren.
  • Du kannst auch überlegen, Excel-Listen übereinander zu legen, um die Übersichtlichkeit zu erhöhen.
  • Nutze bedingte Formatierungen, um Übereinstimmungen visuell hervorzuheben, was den Tabellenvergleich erleichtert.

FAQ: Häufige Fragen

1. Kann ich den Code anpassen, um nach Spaltentiteln zu suchen? Ja, Du kannst den Code anpassen, um die Spaltenüberschriften zu durchlaufen und die entsprechenden Werte zu finden. Es erfordert jedoch etwas mehr Programmierkenntnis.

2. Wie gehe ich vor, wenn die Daten in verschiedenen Arbeitsmappen liegen? Du musst den Code anpassen, um die entsprechenden Arbeitsmappen zu öffnen und die Daten zu vergleichen. Achte darauf, den richtigen Pfad und die Dateinamen zu verwenden.

3. Gibt es eine einfachere Methode, um Excel zwei Tabellen vergleichen und Werte übernehmen zu lassen? Ja, die Verwendung von SVERWEIS() oder INDEX und VERGLEICH kann eine einfachere Alternative sein, wenn Du keine Programmierkenntnisse hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige