VBA EXCEL TRANSFORME UNE DATE ENREGISTRÉE AU FORMAT ANGLAIS (BOGUE D'INVERSION M

Signaler
Messages postés
2
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
26 mai 2006
-
Messages postés
196
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
14 avril 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36686-vba-excel-transforme-une-date-enregistree-au-format-anglais-bogue-d-inversion-mois-jour

Messages postés
196
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
14 avril 2009

Autres problèmes liés à l'import de fichier :
Sur ce site, à l'adresse ci-dessous, vous trouverez le moyen de convertir en nombre une page de cellules sélectionnées ainsi que la possibilité d'appliquer un format monétaire ou de pourcentage.

http://www.vbfrance.com/codes/VBA-EXCEL-CONVERTIR-NOMBRE-APPLIQUER-FORMAT-MONETAIRE-OU_41270.aspx
Messages postés
196
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
14 avril 2009

'Pour ceux qui souhaite récupérer le format déclaré dans les paramètres régionaux

Option Explicit

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 Declare Function GetUserDefaultLCID Lib "kernel32" () As Long

Private Function getRegDateType() As String
'Retourne, pour l'utilisateur actuel, le type de date spécifié dans
'les paramètres régionaux du panneau de configuration de Windows.

Const LOCALE_SSHORTDATE = &H1F

Dim Symbol As String
Dim RetVal1 As Long
Dim RetVal2 As Long
Dim lpLCDataVar As String
Dim Pos As Integer
Dim Locale As Long

Locale = GetUserDefaultLCID()
RetVal1 = GetLocaleInfo(Locale, LOCALE_SSHORTDATE, lpLCDataVar, 0)
Symbol = String$(RetVal1, 0)
RetVal2 = GetLocaleInfo(Locale, LOCALE_SSHORTDATE, Symbol, RetVal1)
Pos = InStr(Symbol, Chr$(0))
If Pos > 0 Then
getRegDateType = LCase(Left$(Symbol, Pos - 1))
End If

End Function
Messages postés
7
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
22 juillet 2006

Bravo et tres bien ecris
Messages postés
196
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
14 avril 2009

C'était le but recherché. Comme tout le monde, j'ai profité des sources éditées sur Internet alors... il faut savoir renvoyer l'ascenseur et rendre service à son tour !
Afficher les 6 commentaires