finalement j'ai trouvé une API qui le fait :
Attribute VB_Name = "LocaleInfo"
Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" _
(ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean
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
'renvoie le séparateur décimal du système
Function SysSepDec() As String
Dim Sep As String * 2
GetLocaleInfo 0, &H16, Sep, 2
SysSepDec = Left$(Sep, 1)
End Function
'change le séparateur décimal pour "Nouveau"
Sub ChangeSepDec(Nouveau As String)
'séparateur décimal
SetLocaleInfo 0, &HE, Nouveau
'séparateur décimal monétaire
SetLocaleInfo 0, &H16, Nouveau
'le séparateur du système a bien été changé mais Excel n'est pas mis à jour...
If MsgBox("Le changement de séparateur décimal du système nécessite" & vbLf & _
"qu'Excel soit fermé puis relancé pour être pris en compte." & _
vbLf & "Fermer maintenant ?", vbYesNo) = vbYes Then Application.Quit
End Sub
Sub test()
ChangeSepDec ","
End Sub
sinon pour récupérer les infos, il faut utiliser GetLocaleInfo