convertir date anglaise en française..

  • Initiateur de la discussion Initiateur de la discussion rih
  • 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 !

rih

XLDnaute Nouveau
Bonjour,

J'ai des dates sous la forme 20May2016 (en anglais) par exemple et je souhaite les convertir en date française 20/05/2016
j'ai utilisé la fonction convertir mais cela marche pas!
Comment convertir les mois anglais en frnaçais?
afin d'avoir des dates françaises au lieu des dates anglaises
Merci beaucoup
 
Dernière édition:
Bonjour rlh.

Nos «amis» anglo-saxons ont tant d'imagination pour rendre compliquées les choses simples qu'il serait bon de déposer un échantillon de ces dates dans leur jus afin que nous vissions in natura de quoi il retourne. S'agit-il de dates écrites en texte ? de dates numériques formatées ? de 20May2016 ? de 20 May 2016 ?

Bonne journée.


ℝOGER2327
#8486


Vendredi 20 Gueules 144 (Saint Lafleur, valet - fête Suprême Quarte)
26 Pluviôse An CCXXV, 6,1708h - guède
2017-W07-2T14:48:35Z
 
Bonjour rlh.

Nos «amis» anglo-saxons ont tant d'imagination pour rendre compliquées les choses simples qu'il serait bon de déposer un échantillon de ces dates dans leur jus afin que nous vissions in natura de quoi il retourne. S'agit-il de dates écrites en texte ? de dates numériques formatées ? de 20May2016 ? de 20 May 2016 ?

Bonne journée.


ℝOGER2327
#8486


Vendredi 20 Gueules 144 (Saint Lafleur, valet - fête Suprême Quarte)
26 Pluviôse An CCXXV, 6,1708h - guède
2017-W07-2T14:48:35Z
Merci pour le retour!
Les dates sont ecrites en texte

ident date
1 12May2016
2 15Auguest2012
3 21April2016
 
Bonjour rih, Roger, Pierre,

Conversion directe de la colonne B :
Code:
Sub ConvertirDates()
Dim col%, a, t, i&, x$, j As Byte
col = 2 'conversion de la colonne B, à adapter
a = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
With Columns(col).Resize(Cells(Rows.Count, col).End(xlUp).Row + 1) 'au moins 2 éléments
  t = .Value 'matrice, plus rapide
  For i = 1 To UBound(t) - 1
    x = CStr(t(i, 1))
    For j = 1 To 12
      x = Replace(x, a(j - 1), "/" & j & "/")
      If IsDate(x) Then t(i, 1) = CDate(x): Exit For
  Next j, i
  .Value = t
End With
End Sub
La macro est très rapide car elle utilise des tableaux VBA.

A+
 
Re,

Il vaut mieux comme le fait pierrejean tester avec InStr, c'est plus rapide :
Code:
Sub ConvertirDates()
Dim col%, a, t, i&, x$, j As Byte
col = 2 'conversion de la colonne B, à adapter
a = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
With Columns(col).Resize(Cells(Rows.Count, col).End(xlUp).Row + 1) 'au moins 2 éléments
  t = .Value 'matrice, plus rapide
  For i = 1 To UBound(t) - 1
    x = CStr(t(i, 1))
    For j = 1 To 12
      If InStr(x, a(j - 1)) Then
        x = Replace(x, a(j - 1), "/" & j & "/")
        If IsDate(x) Then t(i, 1) = CDate(x)
        Exit For
      End If
  Next j, i
  .Value = t
End With
End Sub
Testé sur 100 000 dates chez moi sur Win 10 - Excel 2013 :

- macro du post #5 => 3,5 secondes

- cette macro => 1,6 seconde.

A+
 
- 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
6
Affichages
312
Réponses
3
Affichages
378
Retour