Excel&VBA: Berechnung mit TextBox.Value

Hallo

Ich mache offensichtlich was falsch beim Rechnen mit Werten aus einer TextBox. Sobald ich einen Wert mit Kommastelle in die TextBox TextMaximalwert eingebe, kommt die Meldung „Typen unverträglich“ in dieser Zeile:

Me.TextMaxProzent.Value = -Round(100 - (Me.TextMaximalwert.Value * 100 / Me.TextSollwert1.Value), 2)

Wieso, weshalb?

Vielen Dank für euere Hilfe

Hallo Roland,

Ich mache offensichtlich was falsch beim Rechnen mit Werten
aus einer TextBox.

Wieso du, ist doch excel …

Sobald ich einen Wert mit Kommastelle in
die TextBox TextMaximalwert eingebe, kommt die Meldung „Typen
unverträglich“ in dieser Zeile:

Tja, EXCEL dürfte einen Punkt als Dezimaltrenner erwarten. Probier mal folgendes aus:

Verwende mal diese Eingaben:
12 (ohne einen dez. Trenner)
12.1 (Punkt als dez. Trenner)

und dann:

w1 = val(Me.TextMaximalwert.Value)
w2 = val(Me.TextSollwert1.Value)
Me.TextMaxProzent.Value = -Round(100 - (w1 * 100 / w2), 2)

Ggfs. Solltetest du folgendes einbauen:

w1 = val(replace(Me.TextMaximalwert.Value, „,“ , „.“))
w2 = val(replace(Me.TextSollwert1.Value, „,“ , „.“))

Da du kaum sicherstellen kannst, dass alle Eingaben korrekt sein werden sind diese zu prüfen:

on error goto fehlerMeldung
w1 = val(textWert)
goto weiter
fehlerMeldung:
msgBox(„so nicht!“)
goto neueEingabe
weiter:

So im Prinzip, aber das hab ich nicht ausprobiert. (Code dürfte macken haben …)

mfg

Dirk.Pegasus