Extraction date ancienne et recente

Résolu
frenzy7 Messages postés 64 Statut Membre -  
 frenzy7 -
Bonjour,

Dans un paragraphe sur excel, je souhaite extraire 2 dates : la date plus ancienne pour la mettre dans une cellule
ET la date la plus récente pour la mettre dans une autre cellule.

Exp: 01/01/2018 dzeezfe, rrvtrvtrvo 15/01/2018 dakd 30/01/2018 ezfk 20/01/2018

Dans cet exp, je souhaite extraire "01/01/2018" et "30/01/2018"

Je vous remercie d'avance.

3 réponses

  1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Par des fonctions personnalisées
    Function premieredate(plage As Range)
    tablo = Split(plage, " ")
    butoir = CDate("01/01/2025")
    For n = 0 To UBound(tablo)
    If IsDate(tablo(n)) Then If CDate(tablo(n)) < butoir Then butoir = CDate(tablo(n))
    Next
    premieredate = butoir
    End Function
    
    Function dernieredate(plage As Range)
    tablo = Split(plage, " ")
    butoir = CDate("01/01/2000")
    For n = 0 To UBound(tablo)
    If IsDate(tablo(n)) Then If CDate(tablo(n)) > butoir Then butoir = CDate(tablo(n))
    Next
    dernieredate = butoir
    End Function
    


    A coller dans un module (ALT+F11 pour ouvrie editeur VBA - Insertion - module - Copier coller les macro)

    Syntaxe à utiliser dans la feuille : premieredate(A1) ou dernieredate(A1)

    Cdlmnt
    Via
    0
    1. frenzy7 Messages postés 64 Statut Membre 2
       
      Bonjour,

      Merci cette macro est fonctionnelle merci infiniment :)

      Par contre j'aimerais légèrement la modifier. Lorsqu'il n'y a qu'une seule date j'aimerais qu'en dernieredate(A1) la cellule affiche premieredate(A1)+1 (le jour juste après)

      Je ne suis pas doué en macro je ne sais pas où insérer la modif ds la macro.

      Merci pr votre aide.
      0
  2. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Je regarde ça et te fais un retour dès que possible
    0
    1. frenzy7
       
      OK Thank u. En plus de la solution macro, j'aimerais avoir la solution avec le systeme de formule si possible.
      0
  3. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re,

    Pour pouvoir gérer une seule date en dernière date il faut remplacer la macro que je t'avais fournie par celle là
    Function dernieredate(plage As Range)
    tablo = Split(plage, " ")
    butoir = CDate("01/01/2000")
    datemini = CDate("01/01/2025")
    For n = 0 To UBound(tablo)
    If IsDate(tablo(n)) Then
    If CDate(tablo(n)) < datemini Then datemini = CDate(tablo(n))
    If CDate(tablo(n)) > butoir Then butoir = CDate(tablo(n))
    End If
    Next
    If butoir = datemini Then butoir = butoir + 1
    dernieredate = butoir
    End Function


    Par contre par formule je ne pense pas que ce soit possible du moins avec une seule formule sinon il faudrait décomposer la chaine sur plusieurs colonnes autant de fois qu'il y a des dates puis dans une autre colonne comparer ces résultat, c'est fastidieux et bien moins ergonomique que la fonction personnalisée ci-dessus
    0
    1. frenzy7
       
      Merci infiniment. Tout fonctionne !!! :)
      0
    2. frenzy7 Messages postés 64 Statut Membre 2
       
      Bonjour, je reviens vers vous apres 2 mois. J'ai importé le fichier xlsx sur google sheet, j'ai recrée la même macro mais j'ai des erreurs lorsque j'exécute le code.

      Les macros excel et script editor de google sheet sont-elles compatibles?
      0
    3. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Bonjour

      Il y peut être un problème de compatibilité, je ne suis pas utilisateur de google sheet
      Repose la question sur un nouveau fil sur le forum, quelqu'un saura sans doute te répondre

      Cdlmnt
      Via
      0
    4. frenzy7
       
      Ok. Merci pr la réponse. J’ai fait cela. J’attends. C juste le code visual basic plus haut que je dois transformer en javascript.
      C’est simple pr quelqu’un qui connait la programmation, mais pour moi c’est super compliqué
      0