Zeichenweite mit VBA bestimmen

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