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

Forumthread: VBA: Inhalte von 2 Zellen vergleichen

VBA: Inhalte von 2 Zellen vergleichen
28.08.2019 20:48:45
2
Hallo Excel-Helfer,
ich brauche mal Hilfe bei VBA. Ich möchte den Wert aus Spalte B und Zeile (hier Zeil +1) mit dem Wert aus Zelle L1 vergleichen.
Kann mir bitte jemand den Code für den fettgedruckten Teil ergänzen.
Danke und noch einen schönen Abend.
Peter
Zeil = 13 ' Zeile
Sc = 7 ' Spalte
Do While Cells(Zeil, Sc).Value = 0
Zeil = Zeil + 1 ' Zeile wird um 1 erhöht
Loop ' nächste nichtleere Zelle finden in Spalte 7 ("G")
' MsgBox "Nächste nichtleere Zelle ist F " & Zeil - 1 & " "
If Spalte B und Zeil + 1 Wert aus L1 Then
MsgBox "Bitte Struktur überprüfen", vbCritical, "Überprüfung"
Exit Sub
Else
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Inhalte von 2 Zellen vergleichen
28.08.2019 21:21:03
2
Hallo,
die nächste nach der ersten nicht leeren vergleichen?
If Cells(zeil+1,2)Range("L1") Then

oder
If Range("B" &zeil+1)Range("L1") Then

Gruß
Rudi
Danke Rudi
28.08.2019 21:41:53
Peter
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Inhalte von zwei Zellen in Excel VBA vergleichen


Schritt-für-Schritt-Anleitung

Um in Excel VBA zwei Zellen zu vergleichen, kannst du den folgenden Code verwenden. In diesem Beispiel vergleichen wir den Wert in Spalte B (in der Zeile, die du angeben möchtest) mit dem Wert in Zelle L1.

  1. Öffne den VBA-Editor in Excel mit ALT + F11.
  2. Wähle das entsprechende Arbeitsblatt aus dem Projekt-Explorer.
  3. Füge den folgenden Code in das Codefenster ein:
Sub VergleicheZellen()
    Dim Zeil As Long
    Dim Sc As Long
    Zeil = 13 ' Zeile
    Sc = 2    ' Spalte B (Spalte 2)

    Do While Cells(Zeil, Sc).Value = 0
        Zeil = Zeil + 1 ' Zeile wird um 1 erhöht
    Loop

    ' Vergleich der Werte
    If Cells(Zeil + 1, Sc).Value = Range("L1").Value Then
        MsgBox "Bitte Struktur überprüfen", vbCritical, "Überprüfung"
        Exit Sub
    Else
        MsgBox "Werte sind unterschiedlich."
    End If
End Sub
  1. Führe das Makro aus, um die Werte zu vergleichen.

Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"
    Dieser Fehler tritt auf, wenn du versuchst, unterschiedliche Datentypen zu vergleichen. Stelle sicher, dass die Zellen, die du vergleichst, denselben Datentyp haben.

  • Fehler: "Zelle nicht gefunden"
    Wenn du versuchst, auf eine Zelle zuzugreifen, die nicht existiert (z.B. wenn Zeil außerhalb des Bereichs deiner Tabelle liegt), kann dies zu einem Laufzeitfehler führen. Achte darauf, dass die Variable Zeil im gültigen Bereich liegt.


Alternative Methoden

Eine andere Möglichkeit, Zellen in VBA zu vergleichen, ist die Verwendung der Compare-Methode. Dies kann hilfreich sein, wenn du mehr als nur einfache Werte vergleichen möchtest:

If StrComp(Cells(Zeil + 1, Sc).Value, Range("L1").Value, vbTextCompare) = 0 Then
    MsgBox "Die Werte sind gleich."
Else
    MsgBox "Die Werte sind unterschiedlich."
End If

Hierbei wird ein Fallunterscheidung beim Vergleich der Texte berücksichtigt.


Praktische Beispiele

Angenommen, du hast folgende Werte in deiner Tabelle:

  • Zelle B14: "Test"
  • Zelle L1: "Test"

Wenn du den obigen VBA-Code ausführst, wird eine Meldung erscheinen, dass die Werte gleich sind.

Wenn du jedoch in Zelle B14 "Test1" hast, erhältst du eine andere Meldung, die darauf hinweist, dass die Werte unterschiedlich sind.


Tipps für Profis

  • Verwende Option Explicit: Füge am Anfang jedes Moduls Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert sind. Dies verhindert viele häufige Fehler.

  • Debugging: Nutze die Debugging-Tools im VBA-Editor, um den Code Schritt für Schritt zu durchlaufen und den Status der Variablen zu überprüfen.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung mit On Error Resume Next oder On Error GoTo, um die Benutzerfreundlichkeit deines Makros zu verbessern.


FAQ: Häufige Fragen

1. Wie vergleiche ich zwei Zellen in VBA ohne Schleifen?
Du kannst einfach eine If-Anweisung verwenden, um die Werte direkt zu vergleichen, wie im obigen Beispiel gezeigt.

2. Was passiert, wenn die Zellen leer sind?
Wenn eine oder beide Zellen leer sind, wird 0 als Wert interpretiert. Achte darauf, dies in deinem Code zu berücksichtigen, um unerwartete Ergebnisse zu vermeiden.

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