Was mache ich falsch?
Mein lieber Jörg,
das wurde dir doch schon im obigen Gastbeitrag aufgezeigt
(Dima AsDouble, b AsDouble)
Zum besseren Verständnis :
Option Explicit
Dim anzMpStart
Sub test()
Dim gewM As Single, gewaW As Single, a As Single, b As Single
Dim k As Integer
' gewM = 2,3 SYNTAXFEHLER
' gewaW = 3,45
gewM = 2.3
gewaW = 3.45
k = 0
Do Until (k * gewM >= gewaW)
k = k + 1
Loop
a = k * gewM - gewaW
b = gewaW - (k - 1) * gewM
MsgBox CDbl(a) & " zu " & CDbl(b) 'because Excel stores numbers using double-precision
'a As Single, b As Single - so convert it to single precision
Select Case Round(a, 5)
Case Is > Round(b, 5)
anzMpStart = k - 1
Case Is = Round(b, 5)
anzMpStart = InputBox("per Hand zählen!" & Chr(13) & "Und hier eingeben")
Case Is < Round(b, 5)
anzMpStart = k
End Select
End Sub
Es seit jeher eine gute Sitte Variable zu deklarieren, aber so sparsam war ich, als meine erste Kiste noch schlappe 128 MB Hauptspeicher hatte ;)
|