?val("0,5") 0 ?val("0.5") 0,5 val(replace("0,5",",",".")) Select Case KeyAscii Case vbKey0 To vbKey9, vbKeyBack, vbKeyClear, vbKeyDelete, vbKeyLeft, _ vbKeyRight, vbKeyUp, vbKeyDown, vbKeyTab, vbDecimal Case Else KeyAscii = 0 Beep End Select 'Locale support Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long Const LOCALE_ICOUNTRY = &H5 ' country code Const LOCALE_SENGCOUNTRY = &H1002 ' English name of country Const LOCALE_USER_DEFAULT = &H400 If getLocale <= 1 Then 'US 'use commas else 'UK 'use period End If ? val("2.500,50") 2,5 ? cdbl("2.500,50") 2500,5 ? val("2,500.50") 2 ? cdbl("2,500.50") 2,5005