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

Forumthread: VBA If Bedingung auslösen wenn Zellwert #NV ist

VBA If Bedingung auslösen wenn Zellwert #NV ist
chrissey
Hallo Leute,
bräuchte dringend Eure Hilfe. Wie kann ich eine IF Bedingung ausösen wenn der Zellwert #NV ist?
Habs so probiert, scheitert aber:
If Worksheets(1).Cells(ErsteZeile, 71).Value = "#NV" Then
Worksheets("Test").Cells(aktuelleZeile, 1).Value = Worksheets(1).Cells(ErsteZeile, 12).Value
End If
Danke & Grüße
Chrissey
Anzeige
AW: VBA If Bedingung auslösen wenn Zellwert #NV ist
20.01.2010 15:23:02
Tino
Hallo,
versuche es mal so
If Worksheets(1).Cells(ErsteZeile, 71).Text = "#NV" Then
oder auch
If IsError(Worksheets(1).Cells(ErsteZeile, 71)) Then
Gruß Tino
VarType
20.01.2010 15:27:17
Björn
Hallo,
du kannst auch mit der Funktion VarType den Zellinhalt prüfen.
Allerdings nur, ob irgendein Fehler darin ist, nicht ob der spezielle #NV drin steht.
Aber normalerweise reicht das.
Schau Dir VarType mal in der Hilfe an.
Gruß
Björn B.
Anzeige
AW: VBA If Bedingung auslösen wenn Zellwert #NV ist
20.01.2010 15:44:29
chrissey
DANKE! Funktioniert super
Natürlich geht auch Prüfung auf #NV mit...
20.01.2010 17:58:02
Luc:-?
...der Standard-Range-Eigenschaft Value, Folks...
If Worksheets(1).Cells(ErsteZeile, 71) = CVErr(xlErrNA) Then
Gruß Luc :-?
aber nur mit Fehlerbehandlung ;-)
20.01.2010 18:06:31
Tino
Hallo,
da fehlt aber noch ein On Error ... und weitere prüfungen damit er bei Fehler nicht in die If (True) rein geht.
Gruß Tino
Anzeige
...die ich, falls nötig, in div Formen auch...
20.01.2010 18:33:15
Luc:-?
...verwende, Tino... ;-)
Gruß Luc :-?
PS: Liefert ...Text wirklich #NV oder vielleicht doch #N/A...?
bei mir liefert ...Text wirklich #NV.
20.01.2010 18:38:59
Tino
Hallo,
wenn es wirklich nur um den Fehlerwert NV geht würde ich es wahrscheinlich kombinieren.
If Range("A1").Text = "#NV" And IsError(Range("A1")) Then
End If
Gruß Tino
Anzeige
;

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

VBA If Bedingung für Zellwert #NV


Schritt-für-Schritt-Anleitung

Um eine IF-Bedingung in VBA auszulösen, wenn der Zellwert #NV ist, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den VBA-Editor in Excel, indem Du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu, indem Du im Projekt-Explorer mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" auswählst.

  3. Schreibe den folgenden Code in das Modul:

    Sub CheckForNV()
       If IsError(Worksheets(1).Cells(ErsteZeile, 71).Value) Then
           If Worksheets(1).Cells(ErsteZeile, 71).Text = "#NV" Then
               Worksheets("Test").Cells(aktuelleZeile, 1).Value = Worksheets(1).Cells(ErsteZeile, 12).Value
           End If
       End If
    End Sub
  4. Führe das Makro aus, um die IF-Bedingung zu testen.


Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die beim Arbeiten mit #NV in VBA auftreten können, sowie deren Lösungen:

  • Fehler: "Typen sind nicht übereinstimmend"

    • Lösung: Stelle sicher, dass Du die richtige Methode verwendest, um den Zellwert zu überprüfen. Nutze IsError() für die Fehlerüberprüfung.
  • Fehler: Das Makro wird nicht ausgeführt

    • Lösung: Überprüfe, ob Du das Makro korrekt gestartet hast und ob Du die richtigen Zellreferenzen verwendest.
  • Fehler: Bedingungen werden nicht richtig evaluiert

    • Lösung: Stelle sicher, dass Du die Text-Eigenschaft anstelle der Value-Eigenschaft verwendest, wenn Du auf "#NV" prüfst.

Alternative Methoden

Wenn Du die IF-Bedingung für #NV abfragen möchtest, gibt es verschiedene Alternativen:

  • Verwende CVErr(): Du kannst CVErr(xlErrNA) verwenden, um direkt auf die Fehlerwertprüfung zuzugreifen. Beispiel:

    If Worksheets(1).Cells(ErsteZeile, 71).Value = CVErr(xlErrNA) Then
       ' Weitere Aktionen hier
    End If
  • Verwende VarType(): Du kannst die Funktion VarType() verwenden, um den Typ des Zellinhalts zu überprüfen, was hilfreich sein kann, um Fehler zu identifizieren.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die IF-Bedingung für #NV in VBA umsetzen kannst:

  1. Einfache Prüfung auf #NV:

    If IsError(Worksheets(1).Cells(ErsteZeile, 71).Value) Then
       If Worksheets(1).Cells(ErsteZeile, 71).Text = "#NV" Then
           ' Handle #NV
       End If
    End If
  2. Kombinierte Bedingungen:

    If Worksheets(1).Cells(ErsteZeile, 71).Text = "#NV" And IsError(Worksheets(1).Cells(ErsteZeile, 71)) Then
       ' Handle falls #NV ist
    End If

Tipps für Profis

  • Fehlerbehandlung: Vergiss nicht, eine Fehlerbehandlung einzufügen, um unerwartete Fehler zu vermeiden. Nutze On Error Resume Next und On Error GoTo 0 zur Steuerung der Fehlerbehandlung.

  • Verwende Debug.Print: Wenn Du Probleme hast, verwende Debug.Print, um den Wert von Variablen oder Zellinhalten zu prüfen.

  • Dokumentiere Deinen Code: Kommentiere deinen Code, um die Funktionsweise der IF-Bedingungen klar zu machen. Das hilft dir und anderen, den Code später besser zu verstehen.


FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob eine Zelle #N/A enthält? Du kannst die Funktion IsError() verwenden, um zu prüfen, ob der Zellinhalt ein Fehlerwert ist, und dann die .Text-Eigenschaft nutzen, um auf den spezifischen Fehler zuzugreifen.

2. Was ist der Unterschied zwischen .Value und .Text in VBA? Die .Value-Eigenschaft gibt den tatsächlichen Wert der Zelle zurück, während die .Text-Eigenschaft den angezeigten Textwert zurückgibt, was besonders bei Fehlern wie #NV wichtig ist.

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