Paramètres régionaux

Comment récupérer par VBA les paramètres régionaux ?

** Constant Definitions:
 
 Private Const LOCALE_NOUSEROVERRIDE& = &H80000000 ' à ajouter aux constantes ci-dessous
  'si vous voulez les paramètres par défaut et non ceux choisis par
 l'utilisateur
 Private Const LOCALE_SABBREVCTRYNAME& = &H7
 Private Const LOCALE_SABBREVDAYNAME1& = &H31
 Private Const LOCALE_SABBREVDAYNAME2& = &H32
 Private Const LOCALE_SABBREVDAYNAME3& = &H33
 Private Const LOCALE_SABBREVDAYNAME4& = &H34
 Private Const LOCALE_SABBREVDAYNAME5& = &H35
 Private Const LOCALE_SABBREVDAYNAME6& = &H36
 Private Const LOCALE_SABBREVDAYNAME7& = &H37
 Private Const LOCALE_SABBREVLANGNAME& = &H3
 Private Const LOCALE_SABBREVMONTHNAME1& = &H44
 Private Const LOCALE_SABBREVMONTHNAME10& = &H4D
 Private Const LOCALE_SABBREVMONTHNAME11& = &H4E
 Private Const LOCALE_SABBREVMONTHNAME12& = &H4F
 Private Const LOCALE_SABBREVMONTHNAME2& = &H45
 Private Const LOCALE_SABBREVMONTHNAME3& = &H46
 Private Const LOCALE_SABBREVMONTHNAME4& = &H47
 Private Const LOCALE_SABBREVMONTHNAME5& = &H48
 Private Const LOCALE_SABBREVMONTHNAME6& = &H49
 Private Const LOCALE_SABBREVMONTHNAME7& = &H4A
 Private Const LOCALE_SABBREVMONTHNAME8& = &H4B
 Private Const LOCALE_SABBREVMONTHNAME9& = &H4C
 Private Const LOCALE_SCOUNTRY& = &H6
 Private Const LOCALE_SCURRENCY& = &H14
 Private Const LOCALE_SDATE& = &H1D
 Private Const LOCALE_SDAYNAME1& = &H2A
 Private Const LOCALE_SDAYNAME2& = &H2B
 Private Const LOCALE_SDAYNAME3& = &H2C
 Private Const LOCALE_SDAYNAME4& = &H2D
 Private Const LOCALE_SDAYNAME5& = &H2E
 Private Const LOCALE_SDAYNAME6& = &H2F
 Private Const LOCALE_SDAYNAME7& = &H30
 Private Const LOCALE_SDECIMAL& = &HE
 Private Const LOCALE_SENGCOUNTRY& = &H1002
 Private Const LOCALE_SENGLANGUAGE& = &H1001
 Private Const LOCALE_SGROUPING& = &H10
 Private Const LOCALE_SINTLSYMBOL& = &H15
 Private Const LOCALE_SLANGUAGE& = &H2
 Private Const LOCALE_SLIST& = &HC
 Private Const LOCALE_SLONGDATE& = &H20
 Private Const LOCALE_SMONDECIMALSEP& = &H16
 Private Const LOCALE_SMONGROUPING& = &H18
 Private Const LOCALE_SMONTHNAME1& = &H38
 Private Const LOCALE_SMONTHNAME10& = &H41
 Private Const LOCALE_SMONTHNAME11& = &H42
 Private Const LOCALE_SMONTHNAME12& = &H43
 Private Const LOCALE_SMONTHNAME2& = &H39
 Private Const LOCALE_SMONTHNAME3& = &H3A
 Private Const LOCALE_SMONTHNAME4& = &H3B
 Private Const LOCALE_SMONTHNAME5& = &H3C
 Private Const LOCALE_SMONTHNAME6& = &H3D
 Private Const LOCALE_SMONTHNAME7& = &H3E
 Private Const LOCALE_SMONTHNAME8& = &H3F
 Private Const LOCALE_SMONTHNAME9& = &H40
 Private Const LOCALE_SMONTHOUSANDSEP& = &H17
 Private Const LOCALE_SNATIVECTRYNAME& = &H8
 Private Const LOCALE_SNATIVEDIGITS& = &H13
 Private Const LOCALE_SNATIVELANGNAME& = &H4
 Private Const LOCALE_SNEGATIVESIGN& = &H51
 Private Const LOCALE_SPOSITIVESIGN& = &H50
 Private Const LOCALE_SSHORTDATE& = &H1F
 Private Const LOCALE_STHOUSAND& = &HF
 Private Const LOCALE_STIME& = &H1E
 Private Const LOCALE_STIMEFORMAT& = &H1003
 Private Const LOCALE_SYSTEM_DEFAULT& = &H800
 Private Const LOCALE_USER_DEFAULT& = &H400
 
 '**********************************
 Function Declarations:
 
 Private Declare Function GetLocaleInfo& Lib "kernel32" Alias
 "GetLocaleInfoA" ( _
  ByVal Locale As Long, _
  ByVal LCType As Long, _
  ByVal lpLCData As String, _
  ByVal cchData As Long)
 
 '**********************************
 Variable
 Dim TypePara As Long
 
 '*************************
 ' Parametres regionaux
 
 Function Lire_Para_Regionaux(ParaLocal As Long) As String
  Dim Retour As Long, LongPara As Long
  Dim Para As String
 
  Retour = GetLocaleInfo(TypePara, ParaLocal, Para, 0)
  If Retour > 0 Then
    LongPara = Retour
    Para = String(LongPara, Chr(0))
    Retour = GetLocaleInfo(TypePara, ParaLocal, Para, LongPara)
    If Retour > 0 Then
      Para = Left(Para, LongPara - 1)
      If Len(Para) > 0 Then
        If Asc(Para) = 160 Then Para = "Espace"
      Else
        Para = "Vide"
      End If
      Lire_Para_Regionaux = Para
    End If
  End If
 End Function
 
 sub Tous_Para_Region()
  Dim Li As Integer
  Dim Message As String
 
  Message = "Voulez vous les paramètres par défaut ?" & vbCrLf _
    & "Si vous répondez NON, vous aurez les paramètres choisis par
 l'utilisateur."
  If MsgBox(Message, vbQuestion + vbYesNo, "Paramètres régionaux") = vbYes
 Then
    TypePara = LOCALE_SYSTEM_DEFAULT
  Else
    TypePara = LOCALE_USER_DEFAULT
  End If
  Li = 1
  Range("A" & Li) = "Paramètres régionaux"
  If TypePara = LOCALE_SYSTEM_DEFAULT Then
    Range("B" & Li) = "Par défaut"
  Else
    Range("B" & Li) = "Utilisateur"
  End If
  Range("A1:B1").Font.Bold = True
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVCTRYNAME)
  Range("A" & Li) = "Nom de la langue abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SCOUNTRY)
  Range("A" & Li) = "Nom local du pays"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SENGCOUNTRY)
  Range("A" & Li) = "Nom du pays en anglais"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVLANGNAME)
  Range("A" & Li) = "langue abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SLANGUAGE)
  Range("A" & Li) = "Nom de la langue complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SENGLANGUAGE)
  Range("A" & Li) = "Nom anglais de la langue"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SNATIVECTRYNAME)
  Range("A" & Li) = "Nom natif du pays"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SNATIVELANGNAME)
  Range("A" & Li) = "Nom natif de la langue"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SNATIVEDIGITS)
  Range("A" & Li) = "Symbole natif ascii 0-9"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVDAYNAME1)
  Range("A" & Li) = "Lundi abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVDAYNAME2)
  Range("A" & Li) = "Mardi abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVDAYNAME3)
  Range("A" & Li) = "mercredi abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVDAYNAME4)
  Range("A" & Li) = "jeudi abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVDAYNAME5)
  Range("A" & Li) = "vendredi abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVDAYNAME6)
  Range("A" & Li) = "samedi abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVDAYNAME7)
  Range("A" & Li) = "dimanche abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME1)
  Range("A" & Li) = "janvier abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME2)
  Range("A" & Li) = "février abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME3)
  Range("A" & Li) = "Mars abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME4)
  Range("A" & Li) = "Avril abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME5)
  Range("A" & Li) = "Mai abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME6)
  Range("A" & Li) = "Juin abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME7)
  Range("A" & Li) = "Juillet abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME8)
  Range("A" & Li) = "Aout abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME9)
  Range("A" & Li) = "Septembre abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME10)
  Range("A" & Li) = "Octobre abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME11)
  Range("A" & Li) = "Novembre abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SABBREVMONTHNAME12)
  Range("A" & Li) = "Décembre abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SDAYNAME1)
  Range("A" & Li) = "Lundi complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SDAYNAME2)
  Range("A" & Li) = "Mardi complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SDAYNAME3)
  Range("A" & Li) = "Mercredi complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SDAYNAME4)
  Range("A" & Li) = "Jeudi complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SDAYNAME5)
  Range("A" & Li) = "Vendredi complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SDAYNAME6)
  Range("A" & Li) = "Samedi complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SDAYNAME7)
  Range("A" & Li) = "Dimanche complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME1)
  Range("A" & Li) = "Nom de la langue abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME1)
  Range("A" & Li) = "Mois 1 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME2)
  Range("A" & Li) = "Mois 2 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME3)
  Range("A" & Li) = "Mois 3 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME4)
  Range("A" & Li) = "Mois 4 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME5)
  Range("A" & Li) = "Mois 5 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME6)
  Range("A" & Li) = "Mois 6 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME7)
  Range("A" & Li) = "Mois 7 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME8)
  Range("A" & Li) = "Mois 8 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME9)
  Range("A" & Li) = "Mois 9 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME10)
  Range("A" & Li) = "Mois 10 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME11)
  Range("A" & Li) = "Mois 11 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHNAME12)
  Range("A" & Li) = "Mois 12 complet"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SCURRENCY)
  Range("A" & Li) = "Symbole monétaire"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONDECIMALSEP)
  Range("A" & Li) = "decimale monétaire"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONGROUPING)
  Range("A" & Li) = "regroupement des milliers monétaire"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SMONTHOUSANDSEP)
  Range("A" & Li) = "séparateur de milliers monétaire"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SDECIMAL)
  Range("A" & Li) = "Séparateur décimal"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SGROUPING)
  Range("A" & Li) = "groupement des milliers"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SNEGATIVESIGN)
  Range("A" & Li) = "symbole négatif"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SPOSITIVESIGN)
  Range("A" & Li) = "symbole positve"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_STHOUSAND)
  Range("A" & Li) = "symbole millier"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SLIST)
  Range("A" & Li) = "Séparateur de liste"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SDATE)
  Range("A" & Li) = "Séparateur de date"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_STIME)
  Range("A" & Li) = "symbole d'heure"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SLONGDATE)
  Range("A" & Li) = "Date au format long"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_SSHORTDATE)
  Range("A" & Li) = "Date abrégé"
  Li = Li + 1
  Range("B" & Li) = Lire_Para_Regionaux(LOCALE_STIMEFORMAT)
  Range("A" & Li) = "format d'heure"
  Li = Li + 1
  Range("A:B").EntireColumn.AutoFit
 End sub

Auteur :

Mots clefs associés à cette page : , ,