Dezimalpunkt und Komma
13.07.2010 20:59:05
Erich
Hi Pascal,
das hat mit den verschiedenen Sprachen und Dezimaltrennern zu tun.
Du willst eine Formel auf Englisch (mit IF für WENN) schreiben. Excel erwartet dann den Dezimalpunkt.
Wenn du x als Double deklariert hast und x = 0.0001 setzt, ist das in VBA normal und ok.
Wenn du dann aber " & x & " schreibst, wird x in einen String umgewandelt, der ein Dezimalkomma enthält.
Probier das mal auf einem leeren Blatt aus:
Sub abc()
Dim x As Double, strX As String
x = 0.0001
strX = x
MsgBox strX ' hier siehst du das Komma
Range(Cells(1, 1), Cells(1, 2)).FormulaR1C1 = _
"=IF(RC100.0001,-1,""0""))"
On Error Resume Next
' Die nächsten beiden Anweisungen sind fehlerhaft:
Range(Cells(2, 1), Cells(2, 2)).FormulaR1C1 = _
"=IF(RC10" & x & ",-1,""0""))"
Range(Cells(3, 1), Cells(3, 2)).FormulaR1C1 = _
"=IF(RC10" & x & ",-1,""0""))"
On Error GoTo 0
' Ab hier ok
Range(Cells(4, 1), Cells(4, 2)).FormulaR1C1 = _
"=IF(RC10" & _
Replace(x, ",", ".") & ",-1,""0""))"
strX = Replace(x, ",", ".")
MsgBox strX ' hier siehst du den Punkt
Range(Cells(5, 1), Cells(5, 2)).FormulaR1C1 = _
"=IF(RC10" & strX & ",-1,""0""))"
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort