Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GESTION DES PARAMÈTRES RÉGIONNAUX


Information sur la source

Catégorie :Modules Classé sous : paramètres, régionnaux Niveau : Initié Date de création : 06/04/2006 Vu / téléchargé: 6 104 / 1 028

Note :
9,33 / 10 - par 9 personnes
9,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note

Description

Ce module me permet de gérer les paramètres régionnaux.

ex : Pour connaitre le séparateur décimal numérique

     sDecimal = GetUserLocaleInfo(LOCALE_SDECIMAL) (retourne un string)

ex:  Pour initialiser le séparateur décimal numérique avec un point "."

     bRegionaux = SetUserLocaleInfo(LOCALE_SDECIMAL, ".") (retourne un booléen)

Voici la liste des paramètres régionnaux consultables/modifiables :

¤ Symbole Monétaire Régional
¤ Symbole Monétaire Internationnal
¤ Nom Anglais de la Devise
¤ Nom natif de la Devise
¤ Identifiant de la langue
¤ Nom complet de la langue en cours
¤ Nom Anglais de la langue en cours
¤ Abbréviation de la langue en cours
¤ Nom de la Langue native
¤ Code du Pays
¤ Nom du Pays
¤ Nom du Pays en Anglais
¤ Nom du Pays abbrégé
¤ Nom du Pays d'origine
¤ Code Langue par défaut
¤ Code du Pays par défaut
¤ Code Page
¤ Séparateur décimal monétaire
¤ Séparateur de millier monétaire
¤ Groupement monétaire
¤ # local monetary digits
¤ # intl monetary digits
¤ positive currency mode
¤ negative currency mode
¤ Séparateur décimal numérique
¤ Séparateur de millier numérique
¤ Séparateur de date
¤ Séparateur de l'heure
¤ Format Date Court (ex: dd/MM/yy)
¤ Format Date Long (ex: dd/MM/yyyy)
¤ Format de l'heure
¤ Affichage Date Courte => 0: M-D-Y; 1: D-M-Y; 2: Y-M-D
¤ Affichage Date Longue => 0: M-D-Y; 1: D-M-Y; 2: Y-M-D
¤ Format de l'heure spécifique => 0: AM/PM; 1: 24H
¤ Format du siècle spécifique => 0: 2 digits; 1: 4 digits
¤ Zéro spécifique pour l'heure => 0: Non; 1: Oui
¤ Zéro spécifique pour le jour => 0: Non; 1: Oui
¤ Zéro spécifique pour le mois => 0: non; 1: Oui
¤ Chaîne remplaçant la chaîne AM
¤ Chaîne remplaçant la chaîne PM
 

Conclusion

Voilà, n'hésitez pas à mettre vos commentaires.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de cuq le 06/04/2006 12:25:28

pas encore testé mais bien commenté , Bravo

signaler à un administrateur
Commentaire de Renfield le 06/04/2006 13:04:47 administrateur CS

ce serait pas mal de placer les constantes LOCALE_
dans un enum, ca permettrais d'avoir la liste en intellisense

signaler à un administrateur
Commentaire de FMatrix07 le 06/04/2006 13:20:49

Salut
Super je vais essayer je suis tres preneur

signaler à un administrateur
Commentaire de metalcoder le 06/04/2006 22:18:45

desolé j'ai mis 4 par erreur, je voulais mettre 8...

Ta source va m'etre tres pratique, j'etais effecttivement embeté avec certains de mes programmmes comme celui-ci [url]http://www.vbfrance.com/codes/LOGICIEL-FACTURATION-BOULANGERIE_36839.aspx[/url]

@+

signaler à un administrateur
Commentaire de Sechaud le 07/04/2006 11:25:00

Ce code me plaît bien
J'ai voulu faire un mini programme de test:(1 TextBox,1 ComboBox et un Bouton)
Private Sub Form_Load()
Combo1.AddItem "LOCALE_SINTLSYMBOL"
Combo1.AddItem "LOCALE_SENGCURRNAME"
Combo1.AddItem "LOCALE_SNATIVECURRNAME"
Combo1.AddItem "LOCALE_ILANGUAGE"
Combo1.AddItem "LOCALE_SLANGUAGE"
Combo1.ListIndex = "0"

End Sub
Private Sub Command1_Click() 'Lire un paramètre
  Dim P As Long
  P = LOCALE_SINTLSYMBOL
  Text1.Text = GetUserLocaleInfo(P)

End Sub

Ainsi c'est bon

Mais si on fait
P = Combo1.Text ça ne marche plus.
P = CLng(Combo1.Text) ne marche pas mieux.

Comment faire reconnaître le contenu de Combo1?
Merci à celui qui aura une solution.

signaler à un administrateur
Commentaire de Renfield le 07/04/2006 11:59:07 administrateur CS

tu ne peux utiliser ici un String...

une solution pas trop mauvaise peut simplement etre de renseigner la propriété ItemDate de tes lignes de combo, avec la valeur de tes constantes

signaler à un administrateur
Commentaire de Sechaud le 07/04/2006 12:53:48

Merci Renfield, effectivement ta solution fonctionne.
j'ai essayé:
Private Sub Command1_Click() 'Lire un paramètre
Dim P As Long
   If Combo1.Text = "LOCALE_SCURRENCY" Then P = &H14
   If Combo1.Text = "LOCALE_SINTLSYMBOL" Then P = &H15
Text1.Text = GetUserLocaleInfo(P)
End Sub
c'est bon.

signaler à un administrateur
Commentaire de Renfield le 07/04/2006 13:18:00 administrateur CS

c'est pas ma solution, ça ^^

signaler à un administrateur
Commentaire de Renfield le 07/04/2006 13:34:33 administrateur CS

il est aussi possible d'utiliser :

Public Function GetLocalCodeFromName(ByRef vsCodeName As String) As LOCALEConstants
    Select Case vsCodeName
        Case "LOCALE_ICENTURY":                  GetLocalCodeFromName = LOCALE_ICENTURY
        Case "LOCALE_ICOUNTRY":                  GetLocalCodeFromName = LOCALE_ICOUNTRY
        Case "LOCALE_ICURRDIGITS":             GetLocalCodeFromName = LOCALE_ICURRDIGITS
        Case "LOCALE_ICURRENCY":                GetLocalCodeFromName = LOCALE_ICURRENCY
        Case "LOCALE_IDATE":                        GetLocalCodeFromName = LOCALE_IDATE
        Case "LOCALE_IDAYLZERO":                GetLocalCodeFromName = LOCALE_IDAYLZERO
        Case "LOCALE_IDEFAULTCODEPAGE":  GetLocalCodeFromName = LOCALE_IDEFAULTCODEPAGE
        Case "LOCALE_IDEFAULTCOUNTRY":     GetLocalCodeFromName = LOCALE_IDEFAULTCOUNTRY
        Case "LOCALE_IDEFAULTLANGUAGE":   GetLocalCodeFromName = LOCALE_IDEFAULTLANGUAGE
        Case "LOCALE_IINTLCURRDIGITS":      GetLocalCodeFromName = LOCALE_IINTLCURRDIGITS
        Case "LOCALE_ILANGUAGE":                GetLocalCodeFromName = LOCALE_ILANGUAGE
        Case "LOCALE_ILDATE":                       GetLocalCodeFromName = LOCALE_ILDATE
        Case "LOCALE_IMONLZERO":                GetLocalCodeFromName = LOCALE_IMONLZERO
        Case "LOCALE_INEGCURR":                 GetLocalCodeFromName = LOCALE_INEGCURR
        Case "LOCALE_ITIME":                         GetLocalCodeFromName = LOCALE_ITIME
        Case "LOCALE_ITLZERO":                     GetLocalCodeFromName = LOCALE_ITLZERO
        Case "LOCALE_S1159":                         GetLocalCodeFromName = LOCALE_S1159
        Case "LOCALE_S2359":                         GetLocalCodeFromName = LOCALE_S2359
        Case "LOCALE_SABBREVCTRYNAME":    GetLocalCodeFromName = LOCALE_SABBREVCTRYNAME
        Case "LOCALE_SABBREVLANGNAME":    GetLocalCodeFromName = LOCALE_SABBREVLANGNAME
        Case "LOCALE_SCOUNTRY":                  GetLocalCodeFromName = LOCALE_SCOUNTRY
        Case "LOCALE_SCURRENCY":                GetLocalCodeFromName = LOCALE_SCURRENCY
        Case "LOCALE_SDATE":                        GetLocalCodeFromName = LOCALE_SDATE
        Case "LOCALE_SDECIMAL":                   GetLocalCodeFromName = LOCALE_SDECIMAL
        Case "LOCALE_SENGCOUNTRY":            GetLocalCodeFromName = LOCALE_SENGCOUNTRY
        Case "LOCALE_SENGCURRNAME":          GetLocalCodeFromName = LOCALE_SENGCURRNAME
        Case "LOCALE_SENGLANGUAGE":          GetLocalCodeFromName = LOCALE_SENGLANGUAGE
        Case "LOCALE_SINTLSYMBOL":             GetLocalCodeFromName = LOCALE_SINTLSYMBOL
        Case "LOCALE_SLANGUAGE":                GetLocalCodeFromName = LOCALE_SLANGUAGE
        Case "LOCALE_SLONGDATE":                GetLocalCodeFromName = LOCALE_SLONGDATE
        Case "LOCALE_SMONDECIMALSEP":       GetLocalCodeFromName = LOCALE_SMONDECIMALSEP
        Case "LOCALE_SMONGROUPING":          GetLocalCodeFromName = LOCALE_SMONGROUPING
        Case "LOCALE_SMONTHOUSANDSEP":    GetLocalCodeFromName = LOCALE_SMONTHOUSANDSEP
        Case "LOCALE_SNATIVECTRYNAME":      GetLocalCodeFromName = LOCALE_SNATIVECTRYNAME
        Case "LOCALE_SNATIVECURRNAME":     GetLocalCodeFromName = LOCALE_SNATIVECURRNAME
        Case "LOCALE_SNATIVELANGNAME":      GetLocalCodeFromName = LOCALE_SNATIVELANGNAME
        Case "LOCALE_SSHORTDATE":               GetLocalCodeFromName = LOCALE_SSHORTDATE
        Case "LOCALE_STHOUSAND":                 GetLocalCodeFromName = LOCALE_STHOUSAND
        Case "LOCALE_STIME":                          GetLocalCodeFromName = LOCALE_STIME
        Case "LOCALE_STIMEFORMAT":              GetLocalCodeFromName = LOCALE_STIMEFORMAT
    End Select
End Function

signaler à un administrateur
Commentaire de Renfield le 07/04/2006 13:35:24 administrateur CS

par contre, gigiou, je n'ai pas saisi l'utilité de IniLocaleID...

tu n'utilises en effet que les données 'USER'...

signaler à un administrateur
Commentaire de gigiou le 07/04/2006 13:47:17

Dans mon programme je n'ai besoin de modifier que les paramètres régionnaux de l'utilisateur et non pas ceux du système.

Pour modifier ceux du système il suffit de mettre :
lLocaleID = IniLocaleID("SYSTEM")

Bonne prog et heureux de vous rendre service ...

signaler à un administrateur
Commentaire de Renfield le 07/04/2006 14:09:00 administrateur CS

ce que je veux dire c'est que tu pourrais faire directement GetUserDefaultLCID

sans mettre en place ta fonction, IniLocaleID...

signaler à un administrateur
Commentaire de Sechaud le 07/04/2006 14:15:36

Finalement j'ai fait:
Private Sub Form_Load()

Combo1.AddItem "Symbole Monétaire Régional"
Combo1.AddItem "Symbole Monétaire International"
Combo1.AddItem "Nom Anglais de la Devise"
Combo1.AddItem "Nom natif de la Devise"
Combo1.AddItem "Identifiant de la langue"
Combo1.AddItem "Nom complet de la langue en cours"
Combo1.AddItem "Nom de la Langue native"
Combo1.AddItem "Code du Pays"
Combo1.AddItem "Nom du Pays"
Combo1.AddItem "Nom du Pays en Anglais"
Combo1.AddItem "Nom du Pays abbrégé"
Combo1.AddItem "Nom du Pays d'origine"
Combo1.AddItem "Code Langue par défaut"
Combo1.AddItem "Code du Pays par défaut"
Combo1.AddItem "Code Page"
Combo1.AddItem "Séparateur décimal monétaire"
Combo1.AddItem "Séparateur de millier monétaire"
Combo1.AddItem "Groupement monétaire"
Combo1.AddItem "local monetary digits"
Combo1.AddItem "intl monetary digits"
Combo1.AddItem "positive currency mode"
Combo1.AddItem "negative currency mode"
Combo1.AddItem "Séparateur décimal numérique"
Combo1.AddItem "Séparateur de millier numérique"
Combo1.AddItem "Séparateur de date"
Combo1.AddItem "Séparateur de l'heure"
Combo1.AddItem "Format Date Court (ex: dd/MM/yy)"
Combo1.AddItem "Format Date Long (ex: dd/MM/yyyy)"
Combo1.AddItem "Format de l'heure"
Combo1.AddItem "Affichage Date Courte => 0: M-D-Y; 1: D-M-Y; 2: Y-M-D"
Combo1.AddItem "Affichage Date Longue => 0: M-D-Y; 1: D-M-Y; 2: Y-M-D"
Combo1.AddItem "Format de l'heure spécifique => 0: AM/PM; 1: 24H"
Combo1.AddItem "Format du siècle spécifique => 0: 2 digits; 1: 4 digits"
Combo1.AddItem "Zéro spécifique pour l'heure => 0: Non; 1: Oui"
Combo1.AddItem "Zéro spécifique pour le jour => 0: Non; 1: Oui"
Combo1.AddItem "Zéro spécifique pour le mois => 0: non; 1: Oui"
Combo1.AddItem "Chaîne remplaçant la chaîne AM"
Combo1.AddItem "Chaîne remplaçant la c"
Combo1.ListIndex = "0"

End Sub


Private Sub Command1_Click() 'Lire un paramètre

Dim P As Long
If Combo1.Text = "Symbole Monétaire Régional" Then P = &H14
If Combo1.Text = "Symbole Monétaire International" Then P = &H15
If Combo1.Text = "Nom Anglais de la Devise" Then P = &H1007
If Combo1.Text = "Nom natif de la Devise" Then P = &H1008
If Combo1.Text = "Identifiant de la langue" Then P = &H1
If Combo1.Text = "Nom complet de la langue en cours" Then P = &H2
If Combo1.Text = "Nom de la Langue native" Then P = &H1001
If Combo1.Text = "Code du Pays" Then P = &H5
If Combo1.Text = "Nom du Pays" Then P = &H6
If Combo1.Text = "Nom du Pays en Anglais" Then P = &H1002
If Combo1.Text = "Nom du Pays abbrégé" Then P = &H7
If Combo1.Text = "Nom du Pays d'origine" Then P = &H8
If Combo1.Text = "Code Langue par défaut" Then P = &H9
If Combo1.Text = "Code du Pays par défaut" Then P = &HA
If Combo1.Text = "Code Page" Then P = &HB
If Combo1.Text = "Séparateur décimal monétaire" Then P = &H16
If Combo1.Text = "Séparateur de millier monétaire" Then P = &H17
If Combo1.Text = "Groupement monétaire" Then P = &H18
If Combo1.Text = "local monetary digits" Then P = &H19
If Combo1.Text = "intl monetary digits" Then P = &H1A
If Combo1.Text = "positive currency mode" Then P = &H1B
If Combo1.Text = "negative currency mode" Then P = &H1C
If Combo1.Text = "Séparateur décimal numérique" Then P = &HE
If Combo1.Text = "Séparateur de millier numérique" Then P = &HF
If Combo1.Text = "Séparateur de date" Then P = &H1D
If Combo1.Text = "Séparateur de l'heure" Then P = &H1E
If Combo1.Text = "Format Date Court (ex: dd/MM/yy)" Then P = &H1F
If Combo1.Text = "Format Date Long (ex: dd/MM/yyyy)" Then P = &H20
If Combo1.Text = "Format de l'heure" Then P = &H1003
If Combo1.Text = "Affichage Date Courte => 0: M-D-Y; 1: D-M-Y; 2: Y-M-D" Then P = &H21
If Combo1.Text = "Affichage Date Longue => 0: M-D-Y; 1: D-M-Y; 2: Y-M-D" Then P = &H22
If Combo1.Text = "Format de l'heure spécifique => 0: AM/PM; 1: 24H" Then P = &H23
If Combo1.Text = "Format du siècle spécifique => 0: 2 digits; 1: 4 digits" Then P = &H24
If Combo1.Text = "Zéro spécifique pour l'heure => 0: Non; 1: Oui" Then P = &H25
If Combo1.Text = "Zéro spécifique pour le jour => 0: Non; 1: Oui" Then P = &H26
If Combo1.Text = "Zéro spécifique pour le mois => 0: non; 1: Oui" Then P = &H27
If Combo1.Text = "Chaîne remplaçant la chaîne AM" Then P = &H28
If Combo1.Text = "Chaîne remplaçant la chaîne PM" Then P = &H29

Text1.Text = GetUserLocaleInfo(P)

End Sub

Tout marche bien et en plus, on lit en clair dans la Combo, le paramètre examiné.
Merci pour l'aide.

signaler à un administrateur
Commentaire de yan35 le 21/06/2006 10:45:54

Merci, C'est bien pratique !
Jusqu'ici je montais 1 usine à gaz pour lire la BdR quand j'avais besoin de ces infos.
Avec ton info de ces API, je vais économiser bien des lignes de code ....je mets 10/10.

signaler à un administrateur
Commentaire de ellieopossum le 22/06/2006 14:47:21

Merci ! Ca me dépanne bien. Cela faisait un moment que je cherchais qqch pour gérer facilement le format de date.
Simple et efficace.
Idem que le commentaire précédent : 10/10 !

signaler à un administrateur
Commentaire de Drikce06 le 14/09/2006 09:08:35

Salut! Source très pratique pour gérer le séparateur de décimal. Et ta source est très bien commentée. Ca m'a bien servi.
10/10

signaler à un administrateur
Commentaire de c0pyright le 02/10/2006 14:13:37

moi je n'ai pas noté, mais j'ai une remarque a faire au sujet de la source :
Le code est propre et bien commenté mais un probleme se pose lorsque tu vx modifier certains parametres comme le code pays , le pays, la langue, son code..... ezt plein de chose

Ca marche pour les lire mais pas en "ecriture".

signaler à un administrateur
Commentaire de Sinsitrus le 08/08/2007 01:54:26

J'aurai souhaiter un label qui affiche la langue en cours depuis un timer :s j'y arrive :'(

signaler à un administrateur
Commentaire de Renfield le 08/08/2007 06:21:50 administrateur CS

pourquoi vouloir les modifier, c0pyright ?

Sinistrus, tu as, me semble, tous les elements necessaires dans cette source pour réaliser ce que tu souhaite.
néanmoins, utiliser un Timer serait contre-performant.

la doc nous dit :
http://msdn2.microsoft.com/en-us/library/ms776312.aspx

Note: When an application calls this function for an international change to system parameters, it should broadcast the WM_SETTINGCHANGE message to inform other applications. If this is not done, SetLocaleInfo can make unexpected changes to system settings.

en clair, suffit d'attendre WM_SETTINGCHANGE pour être avertit d'un changement de parametres (langue, dans ton cas)

signaler à un administrateur
Commentaire de Renfield le 08/08/2007 15:30:01 administrateur CS

et quand je dis TOUS les éléments ....


Private Sub Timer1_Timer()
    '# On place le nom du pays dans le label
    Label1.Caption = GetUserLocaleInfo(LOCALE_SCOUNTRY)
End Sub

signaler à un administrateur
Commentaire de Radwane37 le 18/09/2007 09:46:46

Super ton code. Il m'a bien aidé car j'ai des problèmes entre les version d'excel en fr et en us.
Merci

signaler à un administrateur
Commentaire de Radwane37 le 18/09/2007 09:52:06

Salut,

Je n'arrive pas à changer la langue du système. Je voudrais la mettre en anglais us.

J'arrive à changer la "," par un ".", mais pas la langue.

Voila ce que je mets :


'-------------DEBUT---------
Dim str As String
Dim a As Boolean

'enu --> us
'fra --> fr

'pour voir quelle est la langue
str = Module2.GetUserLocaleInfo(LOCALE_SABBREVLANGNAME)
MsgBox (str)

'pour la changer en anglais us
a = Module2.SetUserLocaleInfo(LOCALE_SABBREVLANGNAME, "ENU")

'pour voir quelle est la langue
str = Module2.GetUserLocaleInfo(LOCALE_SABBREVLANGNAME)
MsgBox (str)
'-----------FIN----------------

Quelqu'un peut m'aider svp?
Merci

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

URGENT...Récupération des paramètres régionnaux [ par Bendes ] Comment peut-t-on récupérer le symbole monétaire dans les paramètres régionaux du panneau de configuration ?Merci. Changer la langue des paramètres régionnaux par VB [ par x20abmat ] Bonjour,J'ai un projet VB multilingue, j'utilise les fichiers de ressources pour la gestion de la langue.Par contre je n'arrive pas à changer la langu Changer la langue des paramètres régionnaux par VB [ par x20abmat ] Bonjour,J'ai un projet VB multilingue, j'utilise les fichiers de ressources pour la gestion de la langue.Par contre je n'arrive pas à changer la langu Paramètres régionnaux [ par c0pyright ] bonjour è tous, je post finalement ce message car je me prends la tete (surement pour rien^^) sur les parametres regionnaux,j'utilise SetLocaleInfo et pramètres windows vs excel [ par calipsso ] Slt à tous,voilà en fait si je change le format numérique dans les paramètres régionnaux, automatiquement c'est répercuté dans excel. (exemple: 1.000, passage de paramètres [ par Lemaraud ] Salut les garsau démarrage de mon appli, dans le Private Sub Form_Load()je lance une ptite commande qui me donne une valeur à une variablecomment fair De la bonne utilisation des contrôles [ par curl ] BonjourJ'utilise une listbox, pour afficher/modifier une série de paramètres Un exemple étant toujours plus clair, voila le contenu de la lisboxpara1 urg... [ par osman_amine ] QQ peut me fournir un exemple de code en VB pour appeler un programme en JAVA en utilisant des paramètres en entrée et des paramètres en retour.Donc j Propriétés d'un écran de veille [ par PHILOUVB ] J'aimerais savoir si les paramètres d'un écran de veille sont enregistrés dans la base de registre.Et si oui pouvez-vous me décrire ces paramètres.Mer Passage de paramètres(ou arguments) d'un formulaire à l'autre [ par flyman ] Depuis le formulaire A , je clique unbouton radio qui m'affiche une liste defichiers dans un formulaire B . Je choisi un de ces fichiers et je retourn


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,27 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.