Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kürzen in VBA

Kürzen in VBA
12.12.2012 14:25:32
Tobias
Hallo!
Ich habe mein eine Frage.
Ich habe bspw. den Mittelwert 3.448. Dieser soll als ganze Zahl ausgewiesen werden, dann kommt 4 raus.
Ich möchte nun, dass nur ab der ersten Nachkommastelle gerundet wird. Also 3.4 womit 3 rauskommen würde.
Dafür gibt es eigentlich die Funktion Kürzen (engl. trunc()). Diese existiert aber in VBA nicht. Abrunden bringt mir leider nichts, weil dann Mittelwerte von 3.999 auf 3 abgerundet würden. Int bringt mir auch nichts, weil ich noch die Möglichkeit haben möchte die Werte mit einer Stelle nach dem Komma auszuweisen.
Hat jemand eine Idee wie ich über VBA eine Dezimalzahl an einer beliebigen Stelle abschneiden kann.
VG und danke schonmal!
Tobi

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kürzen in VBA
12.12.2012 14:31:41
Daniel
Hi
die Formel fürs runden in VBA ist Round(3.445, 0) oder WorksheetFunction.Round(3.445, 0)
hier wird auch immer nur die Stelle vor dem Rundungswert betrachtet.
Gruß Daniel

Dein Fktsspektrum ist ja ...
12.12.2012 14:34:49
Luc:-?
…wohl recht eingeengt, Tobi,
und davon, dass diese Fktt idR mehr als nur 1 Argument haben, hast du wohl auch noch nichts gehört.
Mit der WorksheetFunction- bzw Application-Methode kannst du etliche xlStandardFktt unter VBA verwenden. Außerdem gibt's noch die vbFkt Round, die allerdings symmetrisch rundet, was für wt- u.statistische Zwecke ohnehin zu empfehlen ist. Die hat ebenfalls ein 2.Argument, mit dem man die gewünschten Dezimalstellen angeben kann.
Gruß Luc :-?

Anzeige
Evtl. per EVALUATE()
12.12.2012 14:44:27
NoNet
Hallo Tobi,
in VBA kannst Du auf einige der Tabellenblattfunktionen zugreifen, indem Du die Methode Application.WorksheetFunction verwendest. Die Funktion KÜRZEN() / TRUNC() ist hier allerdings ausgespart.
Alternativ kannst Du mit EVALUATE() auch direkt einen funktionsterm eingeben :
MsgBox EVALUATE("Trunc(3.456,2)") ergibt z.B. 3,45
Mit Round(EVALUATE("Trunc(3.456,2)"),0) kannst Du diesen gekürzten Wert wiederum runden.
Gruß, NoNet

AW: Evtl. per EVALUATE()
13.12.2012 09:19:23
Tobias
Hallo!
Danke für die ausführlichen Antworten! Ich werde es gleich mal mit Evaluate versuchen!
VG
Tobi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige