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

Forumthread: VBA - 2 Spalten vergleichen, neue Werte hinzufügen

VBA - 2 Spalten vergleichen, neue Werte hinzufügen
16.02.2017 13:47:43
Pascal
Hallo zusammen,
Zu Beginn meines Makros bin ich bereits vor folgendes Problem gestellt:
Ich habe in 2 getrennten Tabellenblättern jeweils eine Tabelle mit Informationen über Projekte. Identifiziert werden können diese über eine Nummer. Das eine Tabellenblatt zeigt einen aktuellen Auszug aller Projekte, das andere eine kommentierte Vergangenheitsliste.
Ich möchte nun über Makro herausfinden, welche Projekte neu dazugekommen sind und die Vergangenheitsliste um alle "neuen" Identifikationsnummern erweitern. Logisch bedeutet dies:
Ich vergleiche Spalte in Tabellenblatt A mit Spalte in Tabellenblatt B. Alle Werte, die in Tabellenblatt A vorkommen und in Registerkarte B nicht sollen am Ende der Spalte in Tabellenblatt B hinzugefügt werden. Weiter schaffe ich es danach denke ich selbst.
Vielen Dank bereits im Voraus für eure Hilfe! :)
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - 2 Spalten vergleichen, neue Werte hinzufügen
16.02.2017 14:15:25
ChrisL
Hi Pascal
Sehr theoretisch die Frage, aber hier mal ein mögliches Grundgerüst:
Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
For iZeile = 2 To WS1.Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIf(WS2.Columns(1), WS1.Cells(iZeile, 1)) = 0 Then
'noch nicht vorhanden
WS2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = WS1.Cells(iZeile, 1)
Else
'bereits vorhanden
End If
Next iZeile
End Sub

cu
Chris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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

VBA zum Vergleichen von zwei Spalten und Hinzufügen neuer Werte


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle zwei Tabellenblätter. Benenne sie beispielsweise "Tabelle1" für die aktuelle Projektliste und "Tabelle2" für die Vergangenheitsliste.

  2. Füge deine Daten ein. Stelle sicher, dass die Identifikationsnummern in der ersten Spalte beider Tabellenblätter stehen.

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

  4. Erstelle ein neues Modul. Klicke auf "Einfügen" und wähle "Modul".

  5. Füge den folgenden VBA-Code ein:

    Sub t()
        Dim WS1 As Worksheet, WS2 As Worksheet
        Dim iZeile As Long
        Set WS1 = Worksheets("Tabelle1")
        Set WS2 = Worksheets("Tabelle2")
    
        For iZeile = 2 To WS1.Cells(Rows.Count, 1).End(xlUp).Row
            If WorksheetFunction.CountIf(WS2.Columns(1), WS1.Cells(iZeile, 1)) = 0 Then
                'noch nicht vorhanden
                WS2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = WS1.Cells(iZeile, 1)
            End If
        Next iZeile
    End Sub
  6. Führe das Skript aus. Drücke F5, um das Makro auszuführen. Nun werden alle neuen Identifikationsnummern von "Tabelle1" zu "Tabelle2" hinzugefügt.


Häufige Fehler und Lösungen

  • Fehler: Makro läuft nicht.

    • Lösung: Stelle sicher, dass die Makros in Excel aktiviert sind. Überprüfe die Einstellungen unter "Datei" > "Optionen" > "Sicherheitscenter".
  • Fehler: Falsche Tabellennamen.

    • Lösung: Überprüfe, ob die Tabellennamen im VBA-Code mit den tatsächlichen Tabellennamen übereinstimmen.
  • Fehler: Werte werden nicht hinzugefügt.

    • Lösung: Stelle sicher, dass die Zellen in "Tabelle1" und "Tabelle2" korrekt formatiert sind und keine Leerzeichen enthalten.

Alternative Methoden

  1. Verwendung von Power Query: Du kannst Power Query nutzen, um Daten aus zwei Tabellen zu kombinieren und nur die neuen Werte anzuzeigen. Dies bietet eine benutzerfreundliche Oberfläche und erfordert kein Programmieren.

  2. Formeln: Eine andere Möglichkeit ist die Verwendung von Formeln wie VERGLEICH und WENN, um manuell neue Werte zu identifizieren, jedoch ist dies weniger effizient als die Verwendung eines VBA-Makros.


Praktische Beispiele

Angenommen, in "Tabelle1" stehen folgende Identifikationsnummern:

ID
101
102
103

In "Tabelle2" sind diese Werte bereits vorhanden:

ID
100
102

Nach dem Ausführen des Makros wird "Tabelle2" um die ID 101 und 103 erweitert:

ID
100
102
101
103

Tipps für Profis

  • Debugging: Nutze die Debugging-Funktion im VBA-Editor, um den Code Schritt für Schritt zu durchlaufen. Dies hilft dir, Fehler schneller zu finden.

  • Automatisierung: Du kannst das Makro so anpassen, dass es automatisch beim Öffnen der Datei ausgeführt wird, indem du es im Workbook_Open-Ereignis platzierst.

  • Kommentare: Füge Kommentare in deinen Code ein, um die Funktionsweise zu erklären. Das macht es einfacher, den Code später zu bearbeiten.


FAQ: Häufige Fragen

1. Wie kann ich das Makro für mehrere Spalten anpassen?
Du kannst die Schleife erweitern, um mehrere Spalten zu vergleichen, indem du die Columns-Eigenschaft entsprechend anpasst.

2. Funktioniert dieser Code in Excel 365?
Ja, der VBA-Code ist mit Excel 365 kompatibel. Stelle sicher, dass du die richtigen Tabellenblätter verwendest.

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