Sorry, habe zwischendurch nicht mehr in meinen Beitrag reingeschaut, aber falls doch noch jemand reinliest hier die Ersatzfunktion(en):
Public Function neuVal(ByVal sValue As String) As Double
Dim sChar As String
' Dezimaltrennzeichen durch ! ersetzen
sValue = Replace(sValue, GetDecimalChar(), "!")
' Tausendertrennzeichen ausfiltern
sChar = GetThousandGroupDigit()
If Len(sChar) > 0 Then
sValue = Replace(sValue, sChar, "")
End If
' evtl. nachstehende "Nicht-Ziffern"-Zeichen entfernen
While InStr("0123456789!", Right$(sValue, 1)) = 0 And Len(sValue) > 0
sValue = Left$(sValue, Len(sValue) - 1)
Wend
' ! durch . ersetzen, damit die VBA.Val-Funktion
' den korrekten Wert zurückliefert
neuVal = VBA.Val(Replace(sValue, "!", "."))
End Function
' Dezimalzeichen ermitteln
Public Function GetDecimalChar() As String
GetDecimalChar = Mid$(CStr(1.5), 2, 1)
End Function
' Tausender-Trennzeichen ermitteln
Public Function GetThousandGroupDigit() As String
Dim sTemp As String
sTemp = Mid$(FormatNumber(1000, 0, , , vbTrue), 2, 1)
If sTemp = "0" Then sTemp = ""
GetThousandGroupDigit = sTemp
End Function