Microsoft 365 Identifier et convertir une date dans une cellule

Frunk

XLDnaute Nouveau
Bonjour, J'aurais besoin de votre aide car je galère pas mal sur cette fonction. J'ai fait des recherches mais là je suis paumé.

J'ai dans Excel des cellules avec du texte et au milieu une date au format DDMMMYY (anglais) que je voudrais pouvoir extraire et reformater en JJ/MM/YY (format français).

En gros si en A1 j'ai "ABCD EF 05JUL21 GHI", je voudrais une formule qui identifie que le 05JUL21 est une date et me mette en A2 "05/07/21" (bien sur en A1 il n'y a pas toujours les mêmes mots ni le même nombre de caractères).

Merci d'avance de votre aide.
 

vgendron

XLDnaute Barbatruc
Bonjour

est ce que par contre, il y a toujours 2 mots séparés d'un espace avant la date?? et donc que la date est toujours en 3eme position

souhaites tu le traitement par une "simple" formule excel ou du VBA ? (qui reste tout aussi simple en fait)

as tu un fichier exemple à nous soumettre?
 

vgendron

XLDnaute Barbatruc
Exemple de fonction personalisée à mettre dans un module standard
et tu utilises cette fonction comme n'importe quelle autre fonction

VB:
Public Function ExtractDate(target As Range, Optional Ele As Integer)

If target = "" Then Exit Function
temp = Split(target, " ")
On Error GoTo fin
dateinit = temp(2)
jour = CInt(Mid(dateinit, 1, 2))
mois = Mid(dateinit, 3, 3)
nummois = Evaluate("Month(1&""" & mois & """)")
annee = CInt(Mid(dateinit, 6, 2))
'Select Case Ele
'    Case 1
'        ExtractDate = jour
'    Case 2
'        ExtractDate = nummois
'    Case 3
'        ExtractDate = annee
'    Case Else
        ExtractDate = DateSerial(annee, nummois, jour)
        Exit Function
'End Select
fin:
ExtractDate = "Pas de date trouvée"
End Function
 

Frunk

XLDnaute Nouveau
Bonjour et merci pour ces réponses. En fait j'aurais effectivement aimé une "simple" formule Excel (en fouinant je suis tombé sur un truc VBA que je n'arrive pas à faire fonctionner (REGEXEXTRACT)).
La date n'est effectivement pas toujours en 3e position mais par contre il y a toujours 1 ou 2 blocs de lettres avant.
 

Discussions similaires