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