Microsoft 365 [Résolu] Macro extraction de dates

maxime45

XLDnaute Junior
Bonjour à toutes et tous !

Petite explication rapide pour situer le problème :
Je travaille avec un équipementier automobile. On a un gros fichier indicateur excel dans lequel on liste pour chaque fournisseur à problème: nom, références, commentaires, cause du problème, etc. Pas moins de 20 colonnes.
Une colonne très importante dans ce fichier est la colonne "dernière interaction", c'est à dire la dernière date à laquelle on a interagi avec un fournisseur. Si cette colonne a de l'importance, c'est parce-qu'elle permet d'optimiser nos relances ou de donner des priorités sur certains fournisseurs etc.
Seulement, mes collègues ne prennent plus le temps de la remplir, ils se contentent de rajouter une date sur leur dernier commentaire.

Ma requête:
une macro sur la Feuille 1 qui viendrait extraire la date de la dernière ligne de commentaire pour chaque cellule
Je vous joins un fichier exemple, avec deux macros déjà présentes sur la Feuille 2: une pour extraire les quelques colonnes qui m'intéressent, l'autre pour tout effacer.

Sur la Feuille 1, il y a 4 colonnes. Le contenu des commentaires en eux-mêmes à assez peu d'importance.
Le format est le suivant (pour une seule cellule):

jj/mm/aaaa: commentaire 1
jj/mm/aaaa: commentaire 2
jj/mm/aaaa: commentaire 3

Ainsi, la macro viendrait extraire la date du commentaire 3 (dernière ligne) et la coller dans une cellule adjacente.
Le format de date est toujours le même, et la position de la date ne change jamais, elle vient juste avant le commentaire en lui même.

Dernière chose, il se peut que dans certains commentaires apparaissent des N° de lots ou autre, il me semblait important d'en mettre dans mon fichier exemple puisqu'on en a aussi sur notre fichier de base et que je ne sais pas si ça peut influer sur la recherche de date par macro.

J'espère avoir été assez clair dans ma requête, je peux me réexpliquer ou reformuler au besoin, n'hésitez pas à demander je ne veux pas vous faire perdre de temps !
Merci de m'avoir lu ;)

Edit: UP
 

Pièces jointes

  • ExempleMacroDate.xlsm
    24.9 KB · Affichages: 13
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour,

VB:
Function DernièreDate(Cellule As Range) As Date
    Dim TabCommentaires() As String
    Dim S As String
   
    TabCommentaires = Split(Cellule.Value, vbLf)
    S = Left(TabCommentaires(UBound(TabCommentaires)), 10)
    If IsDate(S) Then DernièreDate = CDate(S)
End Function

Placer la formule =DernièreDate(B2) en C2 et vérifier que le format de la cellule est Date.
Étendre aux autres cellules de la colonne C.
 

maxime45

XLDnaute Junior
@Dudu2
Pour être honnête, j'ai un peu de mal !
Je suppose que j'ai des arguments à changer au sein de la fonction, j'avoue avoir du mal à repérer quoi, même si je pense comprendre la méthode dans les grandes lignes (appeler le contenu de B2 en C2 puis le scinder et ne garder que la date).
De plus, je vois que je ne peux pas lier cette fonction à un bouton, d'après ce que j'ai vu sur internet ça ne se fait pas, si la fonction marche elle mettra à jour automatiquement mes cellules ?
Merci !
 

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon