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
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, BorisUm 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.
Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.
Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
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
Schließe den VBA-Editor und gehe zurück zu Excel.
Führe das Makro aus, um die Überprüfung durchzuführen.
Fehler: "Laufzeitfehler 1004: Anwendung oder Objekt definiert Fehler".
Fehler: Der Code funktioniert nicht, wenn B2 leer ist.
If Range("B2") = "" Then
MsgBox "Bitte einen Wert in B2 eingeben."
Exit Sub
End If
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
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.
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.
Option Explicit Anweisung am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.Application.Match, um einen Wert schneller im Array zu finden, falls du mit großen Datenmengen arbeitest.WorksheetFunction-Klasse, um verschiedene Excel-Funktionen in deinem VBA-Code zu nutzen.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.