Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Séparateur décimal VBA

4 réponses
Avatar
Daniel
Re.
Avec VBA, comment récupérer le séparateur décimal quand on utilise les
paramètres système ?
Merci d'avance.
Daniel

4 réponses

Avatar
MichDenis
Pour extraire le séparateur décimale définit dans le panneau
de configuration de Windows :

'-------------------------
Sub Test()

Dim SepDec As String
SepDec = Format(0, ".")
'Ceci était une suggestion d'Alain Cros.

'.il y a aussi cette ligne de code :
SepDec = Application.International(xlDecimalSeparator)

End Sub
'-------------------------
.






"Daniel" a écrit dans le message de news:
%
Re.
Avec VBA, comment récupérer le séparateur décimal quand on utilise les
paramètres système ?
Merci d'avance.
Daniel
Avatar
Daniel
OK. Merci beaucoup.
Daniel
"MichDenis" a écrit dans le message de news:

Pour extraire le séparateur décimale définit dans le panneau
de configuration de Windows :

'-------------------------
Sub Test()

Dim SepDec As String
SepDec = Format(0, ".")
'Ceci était une suggestion d'Alain Cros.

'.il y a aussi cette ligne de code :
SepDec = Application.International(xlDecimalSeparator)

End Sub
'-------------------------
.






"Daniel" a écrit dans le message de news:
%
Re.
Avec VBA, comment récupérer le séparateur décimal quand on utilise les
paramètres système ?
Merci d'avance.
Daniel





Avatar
Hervé
Bonjour Daniel,
Un peu plus complexe mais qui marche très bien :

Declare Function GetSystemDefaultLCID _
Lib "kernel32" () As Long

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

Sub SeparateurDecimal()
Dim Tampon As String
Dim LG_Tampon As Long

LCID = GetSystemDefaultLCID

LG_Tampon = 255

Tampon = String$(LG_Tampon, vbNullChar)

LG_Tampon = GetLocaleInfo( _
GetSystemDefaultLCID, _
&HE, _
Tampon, _
LG_Tampon)

If LG_Tampon > 0 Then
MsgBox Left$(Tampon, LG_Tampon - 1)
End If

End Sub

Hervé.

"Daniel" a écrit dans le message de news:
#
Re.
Avec VBA, comment récupérer le séparateur décimal quand on utilise les
paramètres système ?
Merci d'avance.
Daniel




Avatar
Daniel
Merci à toi aussi.
Daniel
"Hervé" a écrit dans le message de news:
%236yD%23$
Bonjour Daniel,
Un peu plus complexe mais qui marche très bien :

Declare Function GetSystemDefaultLCID _
Lib "kernel32" () As Long

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

Sub SeparateurDecimal()
Dim Tampon As String
Dim LG_Tampon As Long

LCID = GetSystemDefaultLCID

LG_Tampon = 255

Tampon = String$(LG_Tampon, vbNullChar)

LG_Tampon = GetLocaleInfo( _
GetSystemDefaultLCID, _
&HE, _
Tampon, _
LG_Tampon)

If LG_Tampon > 0 Then
MsgBox Left$(Tampon, LG_Tampon - 1)
End If

End Sub

Hervé.

"Daniel" a écrit dans le message de news:
#
Re.
Avec VBA, comment récupérer le séparateur décimal quand on utilise les
paramètres système ?
Merci d'avance.
Daniel