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

Forumthread: VBA, Zellen vergleichen und Wert auslesen

VBA, Zellen vergleichen und Wert auslesen
06.02.2017 10:15:25
Cary
Hallo ihr Lieben,
ich benötige dringend eure Hilfe für einen VBA-Code. Leider bin ich absoluter Anfänger :(
Ich möchte gerne Spalte A aus Tabellenblatt 1 mit Spalte A aus Tabellenblatt 2 vergleichen. Jetzt kommt hinzu, dass wenn die Werte gleich sind, die Werte aus Spalte B aus Tabellenblatt 1 mit Spalte B aus Tabellenblatt zwei zusätzlich verglichen werden sollen.
Alle Werte aus Spalte A, die gleich sind (d.h. Werte aus Spalte A und Werte aus Spalte B sind identisch), sollen in Tabellenblatt 3 in Spalte A eingetragen werden.
Zuletzt kommt hinzu, dass nur solange verglichen werden soll, bis nichts mehr in der Spalte A in Tabellenblatt 1 steht.
Mein VBA-Code sieht bisher so aus.Ich weiß allerdings gar nicht ob ich auf dem richtigen Weg bin.
Sub VergleichZellen()
Dim zeile As Long
Dim Suchzeile As Long
For zeile = 1 To Worksheets("Tabelle 1").Cells(Rows.Count, 1).End(xlUp).Row
For Suchzeile = 1 To Worksheets("Tabelle 2").Cells(Rows.Count, 1).End(xlUp).Row
If Worksheets("Tabelle 1.Cells(Suchzeile, 1) = Worksheets("Tabelle 2").Cells(zeile, 1) Then
Worksheets("Tabelle 3").Range("A:A").Value = ?
Next zeile
Next Suchzeile
Ich würde mich sehr über eure Hilfe freuen!
LG
Cary
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA, Zellen vergleichen und Wert auslesen
06.02.2017 13:54:03
Werner
Hallo Cary,
meinst so?
Sub VergleichZellen()
Dim loZelleBlatt1 As Long
Dim loZelleBlatt2 As Long
Dim loZeileBlatt3 As Long
loZelleBlatt3 = 1
For loZelleBlatt1 = 1 To Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
For loZelleBlatt2 = 1 To Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row
With Sheets("Tabelle1")
If .Cells(loZelleBlatt1, 1) = Worksheets("Tabelle2").Cells(loZelleBlatt2, 1) And _
.Cells(loZelleBlatt1, 2) = Sheets("Tabelle2").Cells(loZelleBlatt2, 2) Then
Sheets("Tabelle3").Cells(loZelleBlatt3, 1) = .Cells(loZelleBlatt1, 1)
Sheets("Tabelle3").Cells(loZelleBlatt3, 2) = .Cells(loZelleBlatt1, 2)
loZelleBlatt3 = loZelleBlatt3 + 1
End If
End With
Next loZelleBlatt2
Next loZelleBlatt1
End Sub
Gruß Werner
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 zur Vergleich von Zellen und Auslesen von Werten in Excel


Schritt-für-Schritt-Anleitung

Um in Excel VBA Zellen zu vergleichen und Werte auszulesen, kannst Du den folgenden VBA-Code verwenden. Dieser Code vergleicht die Werte in Spalte A von zwei Tabellenblättern und gibt die übereinstimmenden Werte in ein drittes Tabellenblatt aus.

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject" und wähle "Einfügen" > "Modul".
  3. Kopiere den folgenden Code in das Modul:
Sub VergleichZellen()
    Dim loZelleBlatt1 As Long
    Dim loZelleBlatt2 As Long
    Dim loZelleBlatt3 As Long
    loZelleBlatt3 = 1

    For loZelleBlatt1 = 1 To Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
        For loZelleBlatt2 = 1 To Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row
            With Sheets("Tabelle1")
                If .Cells(loZelleBlatt1, 1) = Worksheets("Tabelle2").Cells(loZelleBlatt2, 1) And _
                   .Cells(loZelleBlatt1, 2) = Sheets("Tabelle2").Cells(loZelleBlatt2, 2) Then
                    Sheets("Tabelle3").Cells(loZelleBlatt3, 1) = .Cells(loZelleBlatt1, 1)
                    Sheets("Tabelle3").Cells(loZelleBlatt3, 2) = .Cells(loZelleBlatt1, 2)
                    loZelleBlatt3 = loZelleBlatt3 + 1
                End If
            End With
        Next loZelleBlatt2
    Next loZelleBlatt1
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf "Ausführen" klickst.

Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"

    • Lösung: Achte darauf, dass die Zellen, die Du vergleichen möchtest, denselben Datentyp haben (z.B. Text oder Zahl).
  • Fehler: "Objekt nicht gefunden"

    • Lösung: Stelle sicher, dass die Tabellenblätter die richtigen Namen haben. Die Namen in Deinem VBA-Code müssen exakt mit den Arbeitsblättern übereinstimmen.
  • Fehler: Leere Zellen werden nicht berücksichtigt

    • Lösung: Füge eine Bedingung hinzu, um leere Zellen zu überspringen, bevor Du den Vergleich durchführst.

Alternative Methoden

Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch die Funktion VERGLEICH in Excel verwenden, um Zellen zu vergleichen. Hier ein einfaches Beispiel:

  1. Verwende die Formel:
    =VERGLEICH(A1;Tabelle2!A:A;0)
  2. Diese Formel gibt die Position der Übereinstimmung in Tabelle 2 zurück, oder einen Fehler, wenn keine Übereinstimmung gefunden wird.

Praktische Beispiele

Hier ist ein Beispiel für den Vergleich von zwei Zellen:

Angenommen, Du hast in "Tabelle1" die Werte in A1 und B1 und in "Tabelle2" die Werte in A2 und B2. Du möchtest diese vergleichen:

If Worksheets("Tabelle1").Cells(1, 1) = Worksheets("Tabelle2").Cells(2, 1) Then
    ' Zellen sind gleich
End If

Du kannst diese Logik anpassen, um mehrere Zellen zu vergleichen, indem Du Schleifen verwendest, wie im obigen VBA-Code gezeigt.


Tipps für Profis

  • Nutze die Application.ScreenUpdating = False, um die Aktualisierung des Bildschirms während des Makros zu deaktivieren. Dies kann die Ausführungsgeschwindigkeit erhöhen.

  • Verwende Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.

  • Teste den VBA-Code immer in einer Kopie Deiner Datei, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich den VBA-Code anpassen, um mehr als zwei Spalten zu vergleichen?
Du kannst weitere If-Bedingungen hinzufügen, um zusätzliche Spalten zu vergleichen. Achte darauf, dass Du die Indizes der Zellen entsprechend anpasst.

2. Was mache ich, wenn ich keine Programmiererfahrung habe?
Nutze die integrierten Excel-Funktionen wie VERGLEICH oder SVERWEIS, um Zellen zu vergleichen, ohne VBA zu verwenden. Diese Funktionen sind benutzerfreundlicher.

3. Wie kann ich den Vergleich für ganze Spalten automatisieren?
Der bereitgestellte VBA-Code vergleicht bereits die gesamte Spalte, solange Daten vorhanden sind. Achte darauf, dass die Schleifen korrekt konfiguriert sind.

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