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

Forumthread: Fehlerwert ausgeben...

Fehlerwert ausgeben...
03.02.2005 08:02:08
c0bRa
hallo liebe Mitexcelianer,
ich habe folgendes Problem. Ich habe ein Paar funktionen als add-in geschrieben, will jedoch jetzt eine Fehlerwertübergabe, wenn z.b. die Parameter keinen vernünftigen wert ergeben. Als Beispiel nehm ich mal eine kleine Funktion.

Function erstedrei(ByVal text As String) As Integer
If len(text) >= 3 Then
gettok = left(text, 3)
Else
gettok = ?
End If
End Function

ich will jetzt, wenn der string kleiner als 3 zeichen ist nen fehler bei den ?zurückgeben, den excel in der zelle als z.b. #NV! darstellt und v.a. auch mit der funktion ISTFEHLER() als fehler interpretiert...
VBA gut würd ich mich noch nicht bezeichnen, da ich im ggs. zu Sepp wahrscheinlich blutiger Anfänger bin, aber über die Makrorekorderstufe bin ich dennoch hinweg ;)
In der VBA hilfe von Excel hab ich dazu nix gefunden, und hier im forum auch nix entsprechendes. ich hoffe mal, dass ihr mir da irgendwie weiterhelfen könnt...
Danke schonmal im Voraus

c0bRa
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlerwert ausgeben...
RR
Hallo,
warum schreibst du das #NV (?) nicht in die Zelle?
RR
AW: Fehlerwert ausgeben...
c0bRa
also nochmal...
https://www.herber.de/bbs/user/17391.xls
hier ist die funktion auch mit drin.

Function erstedrei(ByVal text As String) As String
If Len(text) >= 3 Then
erstedrei = "blub"
Else
erstedrei = "#NV"
End If
End Function

so schaut se zumindest jetzt aus, weil ich vorhin wiedermal bockmist genaut hab... problem ist jetzt nur, ich will wenn länge kleiner 3 ist einen fehlerwert zurückgeben. das hier ist nur ne beispielfunktion und nicht die eigentliche funktion um die es sich handelt. nur seh ich nciht ein hier 3 seiten quelltext zu posten wenn sich die quintessenz auf 5 zeilen beschränken lässt...
wenn ich nun #nv als wert der zelle zurückgebe interpretiert ISTFEHLER den wert nicht als WAHR, schreibe ich #nv manuell in eine Zelle dann schon.
frage ist jetzt wie ich excel dazu krieg, den #nv der aus der formel resultiert als fehler zu interpretieren

c0bRa
Anzeige
Frge noch offen
c0bRa
AW: Frage noch offen ?
Kurt
hi,

Function erstedrei(ByVal text As String) As Variant
If Len(text) >= 3 Then
erstedrei = "blub"
Else
erstedrei = CVErr(xlErrNA)
End If
End Function

...und Tschüss Kurt
danke funktioniert ;)
c0bRa
Anzeige
AW: Fehlerwert ausgeben...
RR
Hallo,
Excel ist manchmal schon wunderlich! Schreibe mal statt #NV
CVErr(xlErrNA)
Damit sollte dein Problem gelöst sein;-)
RR
;
Anzeige
Anzeige

Infobox / Tutorial

Fehlerwert in Excel VBA ausgeben


Schritt-für-Schritt-Anleitung

Um in einer benutzerdefinierten VBA-Funktion einen Fehlerwert auszugeben, der von Excel als Fehler interpretiert wird, kannst du die Funktion CVErr verwenden. Folge diesen Schritten:

  1. Öffne Excel und gehe in den VBA-Editor (Alt + F11).

  2. Erstelle ein neues Modul unter "Einfügen" > "Modul".

  3. Füge den folgenden Code ein:

    Function erstedrei(ByVal text As String) As Variant
       If Len(text) >= 3 Then
           erstedrei = "blub"
       Else
           erstedrei = CVErr(xlErrNA) ' Gibt einen Fehlerwert aus, der als Fehler interpretiert wird
       End If
    End Function
  4. Speichere das Modul und schließe den VBA-Editor.

  5. Nutze die Funktion in einer Excel-Zelle, z.B. =erstedrei(A1).

Wenn der Wert in A1 kürzer als 3 Zeichen ist, wird #NV angezeigt, und die Funktion ISTFEHLER() wird den Fehler korrekt erkennen.


Häufige Fehler und Lösungen

  • Problem: Die Funktion gibt #NV zurück, aber ISTFEHLER() erkennt den Fehler nicht.

    • Lösung: Stelle sicher, dass du CVErr(xlErrNA) anstelle von "#NV" verwendest. CVErr gibt einen echten Fehlerwert zurück, der von Excel erkannt wird.
  • Problem: Der Rückgabewert ist nicht das, was erwartet wurde.

    • Lösung: Überprüfe die Eingabewerte und stelle sicher, dass die Bedingungen in deiner Funktion korrekt sind.

Alternative Methoden

Anstelle von CVErr(xlErrNA) kannst du auch andere Fehlerwerte mit CVErr ausgeben, je nach Bedarf. Hier sind einige Beispiele:

  • CVErr(xlErrDiv0) für Division durch Null.
  • CVErr(xlErrValue) für falsche Argumentwerte.

Diese Methoden können nützlich sein, wenn du spezifische Fehlertypen ausgeben möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Anwendung der Funktion:

  1. Beispiel 1: Wenn du =erstedrei("Hi") eingibst, erscheint #NV.
  2. Beispiel 2: Bei =erstedrei("Hallo") wird blub angezeigt.
  3. Beispiel 3: Kombiniere die Funktion mit ISTFEHLER(), um eine bedingte Formatierung je nach Fehlerstatus anzuwenden.
=ISTFEHLER(erstedrei(A1)) ' Gibt WAHR zurück, wenn ein Fehler auftritt

Tipps für Profis

  • Verwende die Option Explicit-Anweisung am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehlerquellen zu minimieren.
  • Teste deine Funktionen gründlich mit verschiedenen Eingabewerten, um sicherzustellen, dass sie unter allen Bedingungen korrekt funktionieren.
  • Dokumentiere deine Funktionen, um die Wartbarkeit zu erhöhen und anderen Benutzern zu helfen, deinen Code besser zu verstehen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Fehlerwerte ausgeben?
Du kannst mehrere If...Else-Bedingungen nutzen und unterschiedliche Fehlerwerte mit CVErr zurückgeben.

2. Was passiert, wenn ich die Funktion in einer Zelle verwende?
Die Funktion gibt entweder einen String oder einen Fehlerwert zurück, der in Excel als #NV oder der entsprechende Fehler angezeigt wird.

3. Funktioniert dies in allen Excel-Versionen?
Ja, die beschriebene Methode sollte in allen modernen Excel-Versionen funktionieren, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige