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

Modification temporaire des options régionales (prise 2)

5 réponses
Avatar
Pierre Archambault
Bonjour à tous,

Pardonnez-moi, mais je repose ma question qui semble être tombée dans le
vide.

Quelqu'un pourrait-il me venir en aide à propos des paramètres régionaux.

Je suis au Québec et j'utilise toujours le point (.) comme symbole de
décimale et la virgule (,) pour le regroupement des chiffres. Peut-être
suis-je vieux jeu mais je trouve cela plus simple et plus pratique.
Cependant, comme je développe des applications pour toutes sortes
d'environnement, j'ai souvent besoin de leur faire modifier leurs paramètres
régionaux afin que les calculs se fassent sans problèmes. Certains sont
comme moi, à l'américaine, d'autre à la française utilisent plutôt la
virgule comme symbole décimal et l'espace pour séparer les milliers.

Comment puis-je (en VBA) accéder aux options régionales de l'utilisateur,
les noter, les modifier pour les besoins de l'application puis les retourner
à leur valeurs initiales en quittant le programme ?

Mon environnement (et celui des clients) :
Windows XP et Office 2003

Je vous remercie à l'avance pour vos lumières.

5 réponses

Avatar
garnote
Salut Pierre,

Sub Piste()
With Application
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = False
End With
MsgBox Application.DecimalSeparator + " " + Application.ThousandsSeparator
End Sub

Serge

"Pierre Archambault" a écrit dans le message de news: TRouh.55347$
Bonjour à tous,

Pardonnez-moi, mais je repose ma question qui semble être tombée dans le vide.

Quelqu'un pourrait-il me venir en aide à propos des paramètres régionaux.

Je suis au Québec et j'utilise toujours le point (.) comme symbole de décimale et la virgule (,) pour le regroupement des
chiffres. Peut-être suis-je vieux jeu mais je trouve cela plus simple et plus pratique. Cependant, comme je développe des
applications pour toutes sortes d'environnement, j'ai souvent besoin de leur faire modifier leurs paramètres régionaux afin que
les calculs se fassent sans problèmes. Certains sont comme moi, à l'américaine, d'autre à la française utilisent plutôt la virgule
comme symbole décimal et l'espace pour séparer les milliers.

Comment puis-je (en VBA) accéder aux options régionales de l'utilisateur, les noter, les modifier pour les besoins de
l'application puis les retourner à leur valeurs initiales en quittant le programme ?

Mon environnement (et celui des clients) :
Windows XP et Office 2003

Je vous remercie à l'avance pour vos lumières.








Avatar
MichDenis
'Déclaration API dans le haut d'un module standard :
'----------------------------
Private Declare Function SetLocaleInfo _
Lib "kernel32" Alias "SetLocaleInfoA" ( _
ByVal Locale As Long, _
ByVal LCType As Long, _
ByVal lpLCData As String) As Boolean
Private Declare Function GetUserDefaultLCID% Lib "kernel32" ()
Private Const LOCALE_SDECIMAL = &HE
Private Function SetLocalSetting(LC_CONST As Long, Setting As String) As Boolean
Call SetLocaleInfo(GetUserDefaultLCID(), LC_CONST, Setting)
End Function
'----------------------------

Ceci change le séparateur décimale "virgule" pour le "point"
Pour obtenir l'inverse, il n'y a que modifier la donne dans :
If DecSep = "," Then
Call SetLocalSetting(LOCALE_SDECIMAL, ".")
End If

'---------------------------------
Sub ChangeDecSep()
Dim DecSep
'------------------------------------
'Ceci ne s'applique que pour les versions
'Excel 2002 et 2003
With Application
.DecimalSeparator = ","
.ThousandsSeparator = " "
.UseSystemSeparators = False
End With
'------------------------------------
DecSep = Format(0, ".")
If DecSep = "," Then
Call SetLocalSetting(LOCALE_SDECIMAL, ".")
End If
'------------------------------------
With Application
.DecimalSeparator = ","
.ThousandsSeparator = " "
.UseSystemSeparators = True
End With
'------------------------------------
End Sub
'---------------------------------









"Pierre Archambault" a écrit dans le message de news:
TRouh.55347$
Bonjour à tous,

Pardonnez-moi, mais je repose ma question qui semble être tombée dans le
vide.

Quelqu'un pourrait-il me venir en aide à propos des paramètres régionaux.

Je suis au Québec et j'utilise toujours le point (.) comme symbole de
décimale et la virgule (,) pour le regroupement des chiffres. Peut-être
suis-je vieux jeu mais je trouve cela plus simple et plus pratique.
Cependant, comme je développe des applications pour toutes sortes
d'environnement, j'ai souvent besoin de leur faire modifier leurs paramètres
régionaux afin que les calculs se fassent sans problèmes. Certains sont
comme moi, à l'américaine, d'autre à la française utilisent plutôt la
virgule comme symbole décimal et l'espace pour séparer les milliers.

Comment puis-je (en VBA) accéder aux options régionales de l'utilisateur,
les noter, les modifier pour les besoins de l'application puis les retourner
à leur valeurs initiales en quittant le programme ?

Mon environnement (et celui des clients) :
Windows XP et Office 2003

Je vous remercie à l'avance pour vos lumières.
Avatar
MichDenis
Ce que tu suggères ne s'applique qu'à partir de la version Excel 2002.

Et même avec les versions 2002 et 2003, ceci est vrai que pour
l'interface de la feuille de calcul...En vba, si tu veux utiliser une fonction
de conversion par exemple Cdbl(), seul le séparateur décimale de
la configuration de Windows fonctionne... et ce que tu indiques ne
modifie pas le séparateur de Windows...en conséquence,
attention au code...!


"garnote" a écrit dans le message de news:

Salut Pierre,

Sub Piste()
With Application
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = False
End With
MsgBox Application.DecimalSeparator + " " + Application.ThousandsSeparator
End Sub

Serge

"Pierre Archambault" a écrit dans le message de news:
TRouh.55347$
Bonjour à tous,

Pardonnez-moi, mais je repose ma question qui semble être tombée dans le vide.

Quelqu'un pourrait-il me venir en aide à propos des paramètres régionaux.

Je suis au Québec et j'utilise toujours le point (.) comme symbole de décimale et la virgule (,)
pour le regroupement des
chiffres. Peut-être suis-je vieux jeu mais je trouve cela plus simple et plus pratique. Cependant,
comme je développe des
applications pour toutes sortes d'environnement, j'ai souvent besoin de leur faire modifier leurs
paramètres régionaux afin que
les calculs se fassent sans problèmes. Certains sont comme moi, à l'américaine, d'autre à la
française utilisent plutôt la virgule
comme symbole décimal et l'espace pour séparer les milliers.

Comment puis-je (en VBA) accéder aux options régionales de l'utilisateur, les noter, les modifier
pour les besoins de
l'application puis les retourner à leur valeurs initiales en quittant le programme ?

Mon environnement (et celui des clients) :
Windows XP et Office 2003

Je vous remercie à l'avance pour vos lumières.








Avatar
garnote
Bonjour Denis,

Merci, encore ne fois, d'éclairer ma terne lanterne.

Serge


"MichDenis" a écrit dans le message de news: %
Ce que tu suggères ne s'applique qu'à partir de la version Excel 2002.

Et même avec les versions 2002 et 2003, ceci est vrai que pour
l'interface de la feuille de calcul...En vba, si tu veux utiliser une fonction
de conversion par exemple Cdbl(), seul le séparateur décimale de
la configuration de Windows fonctionne... et ce que tu indiques ne
modifie pas le séparateur de Windows...en conséquence,
attention au code...!


"garnote" a écrit dans le message de news:

Salut Pierre,

Sub Piste()
With Application
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = False
End With
MsgBox Application.DecimalSeparator + " " + Application.ThousandsSeparator
End Sub

Serge

"Pierre Archambault" a écrit dans le message de news:
TRouh.55347$
Bonjour à tous,

Pardonnez-moi, mais je repose ma question qui semble être tombée dans le vide.

Quelqu'un pourrait-il me venir en aide à propos des paramètres régionaux.

Je suis au Québec et j'utilise toujours le point (.) comme symbole de décimale et la virgule (,)
pour le regroupement des
chiffres. Peut-être suis-je vieux jeu mais je trouve cela plus simple et plus pratique. Cependant,
comme je développe des
applications pour toutes sortes d'environnement, j'ai souvent besoin de leur faire modifier leurs
paramètres régionaux afin que
les calculs se fassent sans problèmes. Certains sont comme moi, à l'américaine, d'autre à la
française utilisent plutôt la virgule
comme symbole décimal et l'espace pour séparer les milliers.

Comment puis-je (en VBA) accéder aux options régionales de l'utilisateur, les noter, les modifier
pour les besoins de
l'application puis les retourner à leur valeurs initiales en quittant le programme ?

Mon environnement (et celui des clients) :
Windows XP et Office 2003

Je vous remercie à l'avance pour vos lumières.













Avatar
Pierre Archambault
Je vous remercie grandement messieurs pour vos solutions.

Cela me sera d'un grand secours.

Pierre


"Pierre Archambault" a écrit dans le
message de news: TRouh.55347$
Bonjour à tous,

Pardonnez-moi, mais je repose ma question qui semble être tombée dans le
vide.

Quelqu'un pourrait-il me venir en aide à propos des paramètres régionaux.

Je suis au Québec et j'utilise toujours le point (.) comme symbole de
décimale et la virgule (,) pour le regroupement des chiffres. Peut-être
suis-je vieux jeu mais je trouve cela plus simple et plus pratique.
Cependant, comme je développe des applications pour toutes sortes
d'environnement, j'ai souvent besoin de leur faire modifier leurs
paramètres régionaux afin que les calculs se fassent sans problèmes.
Certains sont comme moi, à l'américaine, d'autre à la française utilisent
plutôt la virgule comme symbole décimal et l'espace pour séparer les
milliers.

Comment puis-je (en VBA) accéder aux options régionales de l'utilisateur,
les noter, les modifier pour les besoins de l'application puis les
retourner à leur valeurs initiales en quittant le programme ?

Mon environnement (et celui des clients) :
Windows XP et Office 2003

Je vous remercie à l'avance pour vos lumières.