Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Fehler '#WERT!' in Formel '=WENN(...)'
#1
Hallo,

ich führe in einer Excel-Tabelle (MS Office Pro Plus 2010) meine mit dem Motorrad
gefahrenen Etappen und die Tankintervalle.
Eine neue Zeile erzeuge ich mit dem Makro "newline", wobei ich auch die Formel
"=WENN(F4>0;tanken();0)" in die Hilfszelle F3 einfüge, damit durch das Einfügen
der neuen Zeile der Bezug nicht fehlerhaft wird.  
Die WENN-Formel soll eine benutzerdefinierte Funktion ausführen, sobald ich in die
Zelle F4 die Menge des getankten Benzins eintrage.
Die Funktion "tanken()" funktioniert auch im Debug-Modus, jedoch zeigt Excel die
WENN-Formel als fehlerhaft an.
Leider habe ich trotz tagelangem Suchen keine Lösung finden können.
Kann mir jemand eine Lösung für das Problem zeigen ?
Einen Screenshot und die Exceldatei hänge ich an.

.xls   _Honda CBF1000F.xls (Größe: 52 KB / Downloads: 7)    
Antworten Top
#2
Hi,


Zitat:
Code:
Die Funktion "tanken()" funktioniert auch im Debug-Modus, jedoch zeigt Excel die
WENN-Formel als fehlerhaft an. 


Du kannst mit einer Funktion, die Du aus dem Tabellenblatt heraus aufrufst, keine anderen Zellen fernsteuern. Aber genau das soll die Funktion tanken() erledigen.
Antworten Top
#3

.xls   _Honda CBF1000F.xls (Größe: 58 KB / Downloads: 2)
(25.05.2015, 17:45)inl1ner schrieb: @Boris
ich weiß nicht so recht, was Du mit 'fernsteuern' meinst, aber mittlerweile bin ich ein wenig weiter (s. unten)

Hi @all,
inzwischen habe ich herausgefunden, dass ich die Funktion nicht als Integer, sondern als 'Double' (oder Single) deklarieren muss, damit sie von der WENN-Formel ausgeführt wird. Allerdings läuft sie nur bis zu Zeile 30 und führt den Befehl "Cells(4, 5) = km" (km As Double) nicht aus. Mit 'Range("E4")' oder 'Cells(4, 5).Value' dasselbe, bzw. mit unterschiedlichsten Datentypen für 'km'. Im Debug-Mode-Einzelschritt läuft die Funktion jedoch problemlos bis zu Ende und auch der Zustand der Zellen ist anschließend so, wie erwartet.
Da ich einige Änderungen in der Funktion zum einfacheren Testen vorgenommen habe, hänge ich die Exceldatei nochmals an.
Bitte schreibt mir, wenn jemand eine Idee hat, was zu ändern ist.
Gruß, inl1ner
Antworten Top
#4
Hi

du kannst mit/in einer UDF(in einer Zelle aufgerufen) keine anderen Zellen verändern, das meinte Boris. Als Beispiel nehme folgende Funktion. Im Debugger läuft sie prima, gibst Du aber in Zelle B1 ein: =Test(3) , dann erhältst Du #WERT! zurück. Wenn du jetzt die Zeile mit Range..... auskommentierst dann arbeitet die Funktion wie eine UDF nunmal arbeitet. Ich hoffe es ist jetzt etwas klarer

Code:
Sub tst()
  Debug.Print Test(3)
End sub

Function Test(Val As Integer) As String
  Test = "So klappt es dann"
  Range("A1").Value = Val
End Function

Zu deinem eigentlichen Problem, da musst du dir etwas anderes einfallen lassen, hatte leider noch keine Zeit mir das näher anzusehen, aber bestimmt findet sich noch Jemand
Grüße,
Winny
Antworten Top
#5
(27.05.2015, 00:00)Winny schrieb: Hi Winny,
danke für Deine Antwort.
In der Tat kann ich die gewünschten Operationen in ein Makro packen. Nach der manuellen Eingabe des Zellwertes für 'Liter' durch Start des Makros mit 'Strg+t' wird das gewünschte Ergebnis erzielt.
Dies ist wenig elegant, daher habe ich weiter gesucht und die Möglichkeit gefunden, mit 'Worksheet_Change' die Zelländerung als Trigger für das Makro 'tanken' einzusetzen.
Gruß, inl1ner
P.S. Das Thema kann geschlossen werden
Antworten Top
#6
erledigt
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste