Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
868to872
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
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem gelöst - Erklärung gesucht: RoundDown

Problem gelöst - Erklärung gesucht: RoundDown
17.05.2007 23:44:00
Kai
Hallo,
ganz kurz, ein Problem gibt's nicht. Die Lösung hab ich. Ich will sie aber noch begreifen.
Folgende Formel meint der VBA-Editor nicht zu kennen:
RoundDown(10 * NumDec,0)
So geht's - jedoch frage ich mich: warum brauche ich dieses Monster?
Application.WorksheetFunction.RoundDown(10 * NumDec,0)
(Mann könnte jetzt sagen mit int(10 * NumDec) sollte es viel einfacher gehen - ginge es auch, wenn Excel in der Grundschule aufgepasst hätte und Mathe könnte. Hat's aber nicht und kann's auch nicht. int(10*NumDec) wird mir mit 238 ausgegeben, wenn 23,9 drinsteht (NumDec ist double).)
Frage: Warum brauche ich dieses Formelmonster um rounddown anzuwenden? Und wie kann ich Excel beibringen bei der int-Fuktion die Regeln der Mathematik zu respektieren?
Gruß,
Kai

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem gelöst - Erklärung gesucht: RoundDown
17.05.2007 23:50:00
Horst
Hi,
Excel und VBA gut und die Hilfe nicht kennen?
mfg Horst

AW: Problem gelöst - Erklärung gesucht: RoundDown
17.05.2007 23:58:56
Kai
Es liegt an double, richtig?
@Horst
IN DER HILFE STEHT NICHTS VON MATHEMATISCHER UNKORREKTHEIT VON INT(). WENN DOCH WÜRDE ICH MICH ÜBER DEN HINWEIS FREUEN, WO ES STEHT!
Und rounddown kennt meine Hilfe auch nicht.
Ansonsten scheint es ja für Dich offensichtlich zu sein - dann sag mir doch kurz, wo ich es finde. Mal im Ernst, ich finde hier kursieren deutlich unsinnigere Fragen als meine.
Kai

AW: Problem gelöst - Erklärung gesucht: RoundDown
18.05.2007 00:19:23
MichaV
Hi,
sehr interessant.
Es liegt daran, daß Du innerhalb der INT()-Anweisung eine Berechnung ausführst. Dann kommt VBA mit dem Runden nicht klar. So geht es:
Option Explicit

Sub bla()
Dim x As Double
x = 23.9
MsgBox x * 10 'ergibt 239, richtig
MsgBox Int(x * 10) 'ergibt 238, falsch!
x = x * 10
MsgBox Int(x) 'ergibt 239, richtig
End Sub


Gruß- Micha

Anzeige
AW: ..und hier die Erklärung
18.05.2007 00:25:00
Kai
Hallo Micha.
Hört sich interessant an, werde ich mal durchsehen.
Aber nicht nur mit meinem Prozessor - Du hast den Fehler doch auch erzeugen können, oder?
Dank & Gruß,
Kai

Anzeige
AW: ..und hier die Erklärung
18.05.2007 00:31:40
MichaV
...ich sag ja nicht, daß es NUR in DEINEM Prozessor liegt. In meinem leider auch ;o)
...und offensichtlich (ich hab den Artikel inzwischen zu Ende gelesen) muß das Problem bei modernen Programmiersprachen nicht mehr auftreten. Also doch irgendwo eine VB- Sache.
Gruß- Micha

AW: ..und hier die Erklärung
18.05.2007 00:36:52
Kai
Hallo Micha,
ich ebenso, hab mir den Artikel mal zu Gemüte geführt - auch wenn's zumindest für mich nicht leicht verdaulich ist. Aber interessant.
In anderen Programmiersprachen geht's, in Delphi habe ich int schon tausendfach verwendet. Keine Probleme, nie so was.
Fazit: Ich werde weiter auf VBA schimpfen - im Vergleich mit Delphi muss man VBA einfach hassen, IMHO.
Danke für die Hinweise und den Link. Muss sagen, du warst deutlich hilfreicher als Horst.
Grüße,
Kai

Anzeige
AW: ..und hier die Erklärung
18.05.2007 00:43:00
MichaV
Hi,
Deine Frage war unglücklich gestellt. Ich hab das Problem zuerst auch nicht erkannt.
Zu Horsts Verteidigung: Bei "VBA-gut" hättest Du das Problem -wie ich- in 2 Minuten aufdecken können ;o))) Lass mal, da muß man ja wirklich nicht drauf kommen. Schönen Abend noch!
Gruß aus Trondheim- Micha

AW: ..und hier die Erklärung
18.05.2007 00:53:59
Kai
Hey Micha,
hast recht, ich gebe oft auch 'bescheiden' an. Hier hab ich halt gut gewählt, ohne viel nachzudenken. Frag sich, wie man's beurteilt. 'Bescheiden' klingt schon ein bisschen nach Beleidigung... Hört sich so an wie 'blutiger Anfänger' ;) Naja, mein VBA ist auch noch ausbaufähig.
Und man kann ja ruhig alles sagen. Immer offen und wenn nötig auch mit dem Holzhammer. Aber kann man dann, wenn man die Frage für völlig offensichtlich und redundant hält, nicht einfach noch den Link dazu posten? Ich würd das immer machen.
Hast aber recht, mit zwei,drei geeignete google-Suchen hätte ich es vielleicht gefunden.
Gruß aus Veracruz, Mexiko,
KAi

Anzeige
AW: ..und noch ein Nachtrag,...
18.05.2007 04:57:00
Luc:-?
...Kai!
Int verhält sich genauso wie die WorksheetFunction.Int (das Application kannst du hier generell einsparen). VBA kennt hier auch andere Fktt wie z.B. CInt bzw CLng. Außerdem ist auch Round eine VBA-Fkt, nicht aber RoundDown! Zwischen CInt und Teilen mittels Operator "\" gibt es auch Unterschiede, CInt rundet! Das sich Int so verhält, hängt auch mit der WshFct.Mod (REST) zusammen - beide sind aufeinander abgestimmt. In nahezu allen anderen PgmSprachen und CalcPgmm wird hier anders vorgegangen - auch in VBA (die Verwendung des VBA-Operators Mod liefert nicht unbedingt dasselbe Ergebnis wie REST!).
Grüße nach Veracruz & Trondheim
Luc :-?
PS: Hier gibt es etliche Profis, die auch nur "VBA gut" angeben... ;-)

Anzeige
Danke für den Nachtrag Luc:-?
19.05.2007 22:53:27
Kai
Mit dem Unterschied von normalen VBA Funktionen und Worksheetfunctions muss ich mich wohl noch mal befassen, war mir bisher nicht so bewusst. VBA Fkt normal hat mir bis jetzt immer gereicht.
Gruß,
Kai

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige