XL 2016 Traduire date anglais en Francais

  • Initiateur de la discussion Initiateur de la discussion KTM
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

KTM

XLDnaute Impliqué
Bonsoir chers tous
Jai des données que j'extrais depuis une plateforme mais les dates sont en anglais comme Wed Dec 24 15:18:20.
je voudrais un code vba pour les transformer comme 01/12/2024.
Merci.....
 
Bonjour @KTM☺️, @fanfan38☺️, @TooFatBoy☺️,

À tout hasard, une petite fonction basée sur le texte affiché par la cellule contenant la date anglaise à convertir:
  • le premier argument est la cellule contenant le texte de la date anglaise à convertir
  • le second argument est l'année du résultat à prendre en compte
  • le troisième argument : s'il est absent alors on laisse tomber l'heure sinon on inclut l'heure
  • la fonction peut suivant les valeurs d'entrée aboutir à une erreur
  • le résultat est une date donc la cellule résultat devra être formatée en date
Le code dans module1:
VB:
Function DateENtoFR(xrg As Range, Annee&, Optional AvecHeure)
' constantes abréviation des mois en anglais et correspondance des mois en Français
Const moisIN = "jan feb mar apr may jun jul aug sep oct nov dec"
Const moisOut = "janvier février mars avril mai juin juillet août septembre octobre novembre décembre"
Dim txtDate$, s, i&, m$
   s = Split(Application.Trim(xrg(1).Text))     ' séparer le texte de la cellule selon les espaces
   i = Round(InStr(1, moisIN, Left(s(1), 3), vbTextCompare))   ' position du mois dans les abréviations anglaises
   ' suivant que l'abréviation du mois anglais a été trouvée ou pas
   If i <> 0 Then m = Split(moisOut)((i - 1) / 4) Else m = "XXX"
   DateENtoFR = CDate(Join(Array(Val(s(2)), m, Val(Annee))))         ' conversion du texte EN en FR (sans heure)
   If Not IsMissing(AvecHeure) And UBound(s) >= 3 Then
      DateENtoFR = DateENtoFR + TimeValue(Replace(s(3), ".", ""))    ' si avec heure
   End If
End Function
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
607
E
Réponses
5
Affichages
2 K
EDI9366
E
Réponses
9
Affichages
686
M
Réponses
2
Affichages
684
M
Retour