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

Forumthread: VBA Wenn Wert in Bereich dann

VBA Wenn Wert in Bereich dann
06.12.2021 21:40:14
Sabbel
Hallo Ihr lieben.
Ich brauche eure Hilfe in VBA
Ich möchte ein Makro das prüft ob der Wert in Zelle B2 in dem Bereich D2:D20 vorkommt .. dann soll was gemacht werden sonst was anderes
Liebe Grüße
Sabbel
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Wenn Wert in Bereich dann
06.12.2021 21:44:12
{Boris}
HI,

Sub Til()
If WorksheetFunction.CountIf(Range("D2:D20"), Range("B2")) Then
'Hier der Code, was gemacht werden soll
Else
'der Mach-was-anderes-Code
End If
End Sub
VG, Boris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA: Überprüfen, ob ein Wert in einem Bereich vorhanden ist


Schritt-für-Schritt-Anleitung

Um in Excel VBA zu überprüfen, ob ein Wert in einem bestimmten Bereich vorhanden ist, kannst du folgendes Makro verwenden. In diesem Fall prüfen wir, ob der Wert in Zelle B2 im Bereich D2:D20 vorkommt.

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

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

    Sub Til()
       If WorksheetFunction.CountIf(Range("D2:D20"), Range("B2")) > 0 Then
           'Hier der Code, was gemacht werden soll
           MsgBox "Der Wert in B2 ist im Bereich D2:D20 vorhanden."
       Else
           'der Mach-was-anderes-Code
           MsgBox "Der Wert in B2 ist nicht im Bereich D2:D20 vorhanden."
       End If
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, um die Überprüfung durchzuführen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Anwendung oder Objekt definiert Fehler".

    • Lösung: Überprüfe, ob der angegebene Bereich "D2:D20" korrekt ist und die Zelle B2 tatsächlich einen Wert enthält.
  • Fehler: Der Code funktioniert nicht, wenn B2 leer ist.

    • Lösung: Füge eine Bedingung hinzu, die überprüft, ob B2 leer ist:
    If Range("B2") = "" Then
       MsgBox "Bitte einen Wert in B2 eingeben."
       Exit Sub
    End If

Alternative Methoden

Du kannst die Überprüfung auch mit einer For-Schleife durchführen:

Sub CheckValue()
    Dim cell As Range
    Dim found As Boolean
    found = False

    For Each cell In Range("D2:D20")
        If cell.Value = Range("B2").Value Then
            found = True
            Exit For
        End If
    Next cell

    If found Then
        MsgBox "Der Wert in B2 ist im Bereich D2:D20 vorhanden."
    Else
        MsgBox "Der Wert in B2 ist nicht im Bereich D2:D20 vorhanden."
    End If
End Sub

Praktische Beispiele

  1. Einfaches Beispiel mit Zahlen: Wenn du überprüfen möchtest, ob eine Zahl in einem bestimmten Bereich vorhanden ist, kannst du den oben genannten Code verwenden, indem du B2 mit einer Zahl befüllst.

  2. Beispiel für Textwerte: Wenn du Textwerte überprüfen möchtest, stelle sicher, dass die Werte in D2:D20 auch als Text formatiert sind. Der Code bleibt gleich, solange die Formatierung konsistent ist.


Tipps für Profis

  • Nutze die Option Explicit Anweisung am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Verwende Application.Match, um einen Wert schneller im Array zu finden, falls du mit großen Datenmengen arbeitest.
  • Experimentiere mit der WorksheetFunction-Klasse, um verschiedene Excel-Funktionen in deinem VBA-Code zu nutzen.

FAQ: Häufige Fragen

1. Wie kann ich den Code so anpassen, dass er mehrere Zellen gleichzeitig überprüft?
Du kannst eine Schleife hinzufügen, die über die Zellen iteriert, die du überprüfen möchtest.

2. Was passiert, wenn der Bereich leer ist?
Der Code gibt eine entsprechende Meldung aus, dass der Wert nicht gefunden wurde, da die CountIf-Funktion in einem leeren Bereich 0 zurückgibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige