Extraire une date d'un texte

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

NICOALBERT

XLDnaute Occasionnel
Bonjour le forum ,

J'ai une petite question !!

Comment peut on extraire une date depuis un texte dans une cellule
( Voici le texte : Quand: 19:30 H.N.E., mardi 25 octobre 2016 )
en ressortir dans une autre cellule la date ( 25/10/2016 ).

Cdlt Nicoalbert .
 
Bonjour le Forum,
Bonjour NICOALBERT,

nous le disons souvent et je vais le répéter pour le plaisir mettez un petit fichier exemple 🙂

Bon autrement un essai en fichier joint

Cordialement

EDIT : Bonjour pierrejean 🙂, désolé pour la collision (hum hum grillé d'une minute) mais content de te croiser
 

Pièces jointes

bonjour tt le monde
j'ai fais une recherche sur le net pour extraire des info....suite à laquelle j'ai une liste que j'ai mis sur excel cette liste contient et la date et l'info à laquelle elle fût ..je voudrais retirer la date pour faciliter le filtre et le tri puisqu'il s'agit de plusieurs événements à la fois...si quelq'un peut aider en voici l'exemple
15/07/2019: Fièvre de West Nile, Grèce, (Notification immédiate)
 
ah ben non finalement il y a des fois où cela ne marche pas , je n'arrive pas à comprendre pourquoi mais si cela vous interesse...
je m'aperçois que le fil date un peu, comme quoi une solution continue d'être utilisée bien des années plus tard, Merci à ceux qui nous donnent ainsi de leur temps 🙂.

question subsidiaire, comment afficher cette fonction pour la reproduire dans un autre classeur?
 

Pièces jointes

Bonjour @Valérie ANTRAS 🙂,

edit : Bonjour le PQiste @Staple1600 😉,

Voici la fonction LaDate modifiée pour tenir compte des cas n'aboutissant pas à une date.
Son code est :
VB:
Function LaDate(ByVal texte As String)
Const LesMois = "janvier,février,mars,avril,mai,juin,juillet,août,septembre,octobre,novembre,décembre"
Dim arrMois, arrTexte, i&, m&
   LaDate = CVErr(xlErrNA)
   arrTexte = Split(Application.Trim(Replace(LCase(texte), "1er ", "01 ")))
   arrMois = Split(LCase(LesMois), ",")
   For i = 0 To UBound(arrTexte)
      For m = 0 To UBound(arrMois)
         If arrTexte(i) = arrMois(m) Then
            LaDate = CDate(Join(Array(arrTexte(i - 1), arrTexte(i), arrTexte(i + 1)), "/"))
            Exit Function
         End If
      Next m
   Next i
End Function
 

Pièces jointes

Dernière édition:
question subsidiaire, comment afficher cette fonction pour la reproduire dans un autre classeur?
Pour afficher le code de cette fonction :
  • tapez la combinaison des deux touches : ALT et <F11> (<F11> représente la touche de fonction F11) : l'éditeur VBE s'affiche
  • dépliez la partie "Modules" dans la fenêtre de "Projet" (fenêtre normalement situé à gauche)
  • double-cliquez sur le module mLaDate
  • le texte de la fonction est dans le module mLaDate.

  • 1744859920964.png
 
Bonjour le fil

Ah tiens de la poussière qui fleure bon 2019 😉

Profitons pour sortir le PQ 😉

PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    DateTexte = Table.AddColumn(Source, "DateTexte", each Text.AfterDelimiter([Colonne1], ",")),
    DateNettoyee = Table.TransformColumns(DateTexte, {{"DateTexte", each Text.Trim(Text.Range(_, Text.PositionOf(_, " ")+1)), type text}}),
    DateFinale = Table.TransformColumns(DateNettoyee, {{"DateTexte", each Date.FromText(_, "fr-FR"), type date}}),
    FIN = Table.SelectColumns(DateFinale,{"DateTexte"})
in
    FIN
Ce qui donne le résultat suivant:
PQ_date.PNG


PS: Salutations @mapomme 😉
 
Hello,
Stapple1600 tu n'as pas du lire le classeur de Valérie car ses dates ne se présentent pas comme cela.
Valérie, si tes dates se présentent toujours comme on le voit dans ton classeur (c'est à dire dans les 10 derniers caractères de la cellule) tu peux utiliser cette formule :
Code:
=DATEVAL(DROITE(B2;10))

Ami calmant, J.P
 
Bonjour
VB:
Function GetDate(chain)
    Dim t, i&
    t = Split(LCase(chain), " ")
    For i = 0 To UBound(t)
        On Error Resume Next
        d = DateValue((t(i) & " " & t(i + 1) & " " & t(i + 2)))
        If Err.Number = 0 And Year(d) = t(i + 2) Then GetDate = CDate(d): Exit Function
        Err.Clear
    Next
End Function

formule
=Getdate(A1)
 
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

  • Question Question
Microsoft 365 format date
Réponses
3
Affichages
105
Réponses
0
Affichages
331
Retour