OVH Cloud OVH Cloud

Separateur décimal

6 réponses
Avatar
Euclide
J'ai des utilisateurs qui ont comme séparateur décimal le point et d'autres
la virgule.
Je désirerai alors faire une test pour le bon déroulement du programme.

Comment faire ?
Faut-il passer par la lecture de la table de registre ?

6 réponses

Avatar
Aski
Salut

Une méthode entre autres :
Tu divises deux nombres quelconques. Tu convertis le résultat en chaîne et
tu recherches, avec InStr() si la chaîne contient un point ou une virgule.

Aski

En folâtrant sur son clavier, Euclide s'est exprimé ainsi :

|| J'ai des utilisateurs qui ont comme séparateur décimal le point et
|| d'autres la virgule.
|| Je désirerai alors faire une test pour le bon déroulement du
|| programme.
||
|| Comment faire ?
|| Faut-il passer par la lecture de la table de registre ?
Avatar
une astuce trouvée je ne sais plus où sur le net

symboledecimal = Format(0, ".")

te retourne une variable string contenant le symbole
décimal du poste.

françois
Avatar
Jacques93
Euclide wrote:
J'ai des utilisateurs qui ont comme séparateur décimal le point et d'autres
la virgule.
Je désirerai alors faire une test pour le bon déroulement du programme.

Comment faire ?
Faut-il passer par la lecture de la table de registre ?




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

Private Const LOCALE_SYSTEM_DEFAULT = &H400
Private Const LOCALE_SDECIMAL = &HE


Dim sSepDec as String

' Separateur decimal
Buffer = Space(256)
ld = GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, _
LOCALE_SDECIMAL, Buffer, Len(Buffer))
If ld > 0 Then
sSepDec = Left(Buffer, ld - 1)
If sSepDec <> "," Then
...
Else
...
End If
Else
MsgBox "Erreur GetLocaleInfo"
End If

--
Cordialement,

Jacques.
Avatar
Jacques93
Pascal B. wrote:
.... lourd ... ;o)




Peut être, mais utile si on veut avoir d'autre infos sur les paramètres
régionaux, donc j'en rajoute :-) :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_34rz.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_8rse.asp

--
Cordialement,

Jacques.
Avatar
Pascal B.
... lourd ... ;o)

"Jacques93" wrote in message news:OZ$
| Euclide wrote:
| > J'ai des utilisateurs qui ont comme séparateur décimal le point et d'autres
| > la virgule.
| > Je désirerai alors faire une test pour le bon déroulement du programme.
| >
| > Comment faire ?
| > Faut-il passer par la lecture de la table de registre ?
| >
|
| 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
|
| Private Const LOCALE_SYSTEM_DEFAULT = &H400
| Private Const LOCALE_SDECIMAL = &HE
|
|
| Dim sSepDec as String
|
| ' Separateur decimal
| Buffer = Space(256)
| ld = GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, _
| LOCALE_SDECIMAL, Buffer, Len(Buffer))
| If ld > 0 Then
| sSepDec = Left(Buffer, ld - 1)
| If sSepDec <> "," Then
| ...
| Else
| ...
| End If
| Else
| MsgBox "Erreur GetLocaleInfo"
| End If
|
| --
| Cordialement,
|
| Jacques.
Avatar
Guy DETIENNE
On dira plutôt que l'utilisation de l'Api est pour les puristes ;O)

Guy

"Pascal B." a écrit dans le message de
news:

... lourd ... ;o)

"Jacques93" wrote in message


news:OZ$
| Euclide wrote:
| > J'ai des utilisateurs qui ont comme séparateur décimal le point et


d'autres
| > la virgule.
| > Je désirerai alors faire une test pour le bon déroulement du


programme.
| >
| > Comment faire ?
| > Faut-il passer par la lecture de la table de registre ?
| >
|
| 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
|
| Private Const LOCALE_SYSTEM_DEFAULT = &H400
| Private Const LOCALE_SDECIMAL = &HE
|
|
| Dim sSepDec as String
|
| ' Separateur decimal
| Buffer = Space(256)
| ld = GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, _
| LOCALE_SDECIMAL, Buffer, Len(Buffer))
| If ld > 0 Then
| sSepDec = Left(Buffer, ld - 1)
| If sSepDec <> "," Then
| ...
| Else
| ...
| End If
| Else
| MsgBox "Erreur GetLocaleInfo"
| End If
|
| --
| Cordialement,
|
| Jacques.