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

Forumthread: Überprüfen ob bestimmter Wert in Range vorhanden

Überprüfen ob bestimmter Wert in Range vorhanden
Peter
Guten Tag
Ich habe in einer Excel-Tabelle einen benannter Bereich "Waehrung". Dort stehen in den einzelnen Zellen unterschiedliche Währungskürzel.
Nun überprüfe ich die Existenz eines bestimmten Kürzels, als Bedingung, dass der folgende Code ausgeführt wird.
Wie muss ich untenstehende Routine anpassen, dass das Programm nicht anhält, wenn beispielsweise im Range der Wert "EUR" nicht zu finden ist?
Gruss, Peter
If Range("Waehrung").Find("EUR", LookIn:=xlValues, lookat:=xlWhole) = "EUR" Then
'mein Code
Else
Endif
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Überprüfen ob bestimmter Wert in Range vorhanden
23.07.2010 11:42:37
PeTeR
Hallo Peter,
mit der Anweisung on error resume next oder on error goto
Viel Erfolg
PeTeR
AW: Überprüfen ob bestimmter Wert in Range vorhanden
23.07.2010 11:53:17
JogyB
Hallo Peter,
da braucht es kein On Error ...
Deine Anweisung ist so sinnlos, entweder findet er etwas, dann ist schon klar dass "EUR" drinsteht oder es findet nichts, dann gibt der Vergleich einen Fehler.
Die Find-Methode liefert ein Range-Objekt zurück. Wenn es nichts findet, ist das konsequenterweise Nothing.
Daher lautet die Prüfung:
If Not Range("Waehrung").Find("EUR", LookIn:=xlValues, lookat:=xlWhole) Is Nothing Then
Gruß, Jogy
Anzeige
AW: Überprüfen ob bestimmter Wert in Range vorhanden
23.07.2010 11:57:17
Peter
Hallo zusammen
danke für die Antworten.
Die If Not Variante ist mir lieber.
Alternativ habe ich mir noch eine Variante mit Countif überlegt:
if Application.countif(range("Waehrung"),"EUR") =1 Then
Vielen Dank und Gruss, Peter
;

Forumthreads zu verwandten Themen

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

Überprüfung von Werten in Excel-Ranges


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob ein bestimmter Wert, wie beispielsweise ein Währungskürzel, in einem benannten Bereich vorhanden ist, kannst Du die Find-Methode verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne deine Excel-Datei und gehe zu dem VBA-Editor (ALT + F11).

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (deine_datei.xlsx)" und wähle "Einfügen" > "Modul".

  3. Füge den folgenden Code ein:

    Sub PrüfenObWertVorhanden()
       Dim Währung As Range
       Set Währung = Range("Waehrung")
    
       If Not Währung.Find("EUR", LookIn:=xlValues, lookat:=xlWhole) Is Nothing Then
           ' Dein Code, wenn der Wert vorhanden ist
       Else
           ' Alternativer Code, wenn der Wert nicht vorhanden ist
       End If
    End Sub
  4. Passe den Code an, falls Du einen anderen Währungswert prüfen möchtest, indem Du "EUR" durch den gewünschten Wert ersetzt.

  5. Führe das Makro aus, um zu sehen, ob der bestimmte Wert im benannten Bereich vorhanden ist.


Häufige Fehler und Lösungen

  • Fehler: "Typenübereinstimmung"
    Dies passiert, wenn die Zelle, die Du prüfst, nicht im richtigen Format ist. Stelle sicher, dass die Zellen im benannten Bereich die erwarteten Werte enthalten.

  • Lösung: Überprüfe die Formatierung
    Stelle sicher, dass die Zellen im benannten Bereich die gleichen Datentypen haben wie der Wert, den Du suchst.

  • Fehler: "Nothing" wird nicht erkannt
    Wenn Du die Find-Methode verwendest, stelle sicher, dass Du die richtige Syntax verwendest und die LookIn und lookat Parameter korrekt gesetzt sind.


Alternative Methoden

Eine alternative Methode, um zu überprüfen, ob ein Wert vorhanden ist, ist die Verwendung von CountIf. Hier ist ein Beispiel:

If Application.CountIf(Range("Waehrung"), "EUR") > 0 Then
    ' Dein Code, wenn der Wert vorhanden ist
Else
    ' Alternativer Code, wenn der Wert nicht vorhanden ist
End If

Diese Methode ist einfach und effektiv, um zu prüfen, ob ein Wert in einer bestimmten Spalte oder einem benannten Bereich vorhanden ist.


Praktische Beispiele

Angenommen, Du hast eine Liste von Währungskürzeln in einem benannten Bereich "Waehrung" und möchtest überprüfen, ob der Wert "USD" vorhanden ist:

Sub PrüfenObUSDPraesent()
    If Not Range("Waehrung").Find("USD", LookIn:=xlValues, lookat:=xlWhole) Is Nothing Then
        MsgBox "USD ist vorhanden!"
    Else
        MsgBox "USD wurde nicht gefunden."
    End If
End Sub

Dieses Beispiel zeigt, wie Du den bestimmten Wert "USD" in einem benannten Bereich prüfen und eine entsprechende Nachricht ausgeben kannst.


Tipps für Profis

  • Verwende Variablen für den Suchwert: Anstatt den Wert direkt im Code zu verwenden, speichere ihn in einer Variablen. Das macht deinen Code flexibler.

    Dim Suchwert As String
    Suchwert = "EUR"
    If Not Range("Waehrung").Find(Suchwert, LookIn:=xlValues, lookat:=xlWhole) Is Nothing Then
      ' Dein Code
    End If
  • Fehlermeldungen vermeiden: Setze On Error Resume Next vor der Find-Anweisung, um Fehler zu ignorieren. Bedenke jedoch, dass dies auch andere Fehler unterdrücken kann.


FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob ein Wert in einer anderen Tabelle vorhanden ist?
Du kannst die Find-Methode auch auf einen Bereich einer anderen Tabelle anwenden. Beispiel: Worksheets("AndereTabelle").Range("Waehrung").Find("EUR").

2. Was passiert, wenn der benannte Bereich leer ist?
Wenn der benannte Bereich leer ist, wird die Find-Methode Nothing zurückgeben. Dies solltest Du in Deinem Code berücksichtigen.

3. Kann ich mehrere Werte gleichzeitig prüfen?
Ja, Du kannst eine Schleife verwenden, um mehrere Werte zu prüfen, indem Du die Find-Methode für jeden Wert aufrufst.

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