Hi an alle User des Boards,…
ich habe ein kleines VBA-Problem (und … ich gestehe, ich bin ein „Try 'n Error - VBA-Newbie“ … *smile)
Das Problem …
Ich habe eine kleine Funktion geschrieben:
Public Function Response(Eingang, Ausgang)
Response = Eingang / Ausgang
End Function
Die Ausgabe der Funktion erfolgt aber - exceltypisch - in bis zu sieben Nachkommastellen; ich möchte aber nur maximal zwei Nachkommastellen.
Beholfen habe ich mir damit, in dem ich eine die Ausgabe im Feld wie folgt formatiert habe:
=WENN(C7="";"";LINKS(Response(C7;D7);4))
d.h. die Ausgabe wird unterdrückt, wenn eins der Quellfelder (C7) leer ist, ansonsten wird die Ausgabe mit „LINKS()“ auf #,## zusammengeschnitten.
Es sollte doch aber eine Möglichkeit geben, die Ausgabe in der Funktion gleich auf vier Stellen zu formatieren, nicht zu runden.
Aber wie ?
Im Voraus … danke.
Mfg
Blackwolf
Hi Blackwolf
Ich habe eine kleine Funktion geschrieben:
Response = Eingang / Ausgang
Das ist ja einfach eine Division, die du direkt ins entsprechende Feld eintragen kannst.
Die Ausgabe der Funktion erfolgt aber - exceltypisch - in bis
zu sieben Nachkommastellen; ich möchte aber nur maximal zwei
Nachkommastellen.
Ja, dann kannst du einfach mit der gewünschten Excel-Funktion runden oder abschneiden oder was du willsst. Für all das brauchst du keine eigene Funktion zu erfinden.
Oder habe ich dein Problem nicht ganz erfasst? Machst du in der Funktion vielleicht noch etwas komplexere Operationen, die du uns verschwiegen hast und die eine eigene Funktion verlangen, weil Excel sie nicht anbietet?
mfg
Erich
Zusatzfrage:
Was bedeutet der Titel Zeichenweite? Hat die Division etwas mit dem Zeichnabstand zu tun?
Bitte ganzes Problem deutlicher darstellen.
Erich
Public Function Response(Eingang, Ausgang)
Response = Eingang / Ausgang
End Function
Hi Black,
Rem Abbruch bei Leer oder Null
If Ausgang = „“ OR Ausgang = 0 then
Exit Function
End If
Rem 2-Dezimal-Stellen ohne Runden
response = ((Eingabe / Ausgabe * 100 - 0.5) \ 1) / 100
( -.5) verhindert ein Aufrunden
( \1 ) löscht die Nachkomma-Stellen, entspricht Integer
zu ZellFormatierung:
Eigentlich ist es: numberformat = format(„0.00“)
Geht hier aber nicht, weil die Formatierung als String zurückgegeben wird. Die Function erwartet ein Double. Sorry, muß ich passen.
Gruß Carola