Microsoft 365 trouver la date la plus récente (uniquement sur le jour) contenue dans ma cellule :

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une belle journée :)

Je me permets de revenir vers nos chers ténors en vba pour un besoin particulier qui, selon mes recherche n'a jamais été traité, ni sur le forum, ni sur internet.

Il m'est très difficile d'expliquer mon besoin dans le post. Il est, je crois, clairement montré dans le fichier test que je joins à ma demande.

Si vous aviez la solution vba, ça m'arrangerait bien lol :)
En espérant que ce sera pas trop ch..t à lire.
Je vous remercie vivement,
Amicalement,
lionel,
 

Pièces jointes

  • test_uf_comment.xlsm
    206.5 KB · Affichages: 49
Dernière édition:
Solution
Bonjour Lionel, soan, Yeahou,

Cette solution impose le minimum de contraintes aux dates dans la cellule active :
VB:
Sub DerniereDate()
Dim x$, i%, y$, a(), n%
x = Application.Trim(ActiveCell) 'SUPPRESPACE
For i = 1 To Len(x)
    y = Mid(x, i, 14)
    If y Like "##?##?## ##:##" And IsDate(y) Then ReDim Preserve a(n): a(n) = CDbl(CDate(y)): n = n + 1
Next
If n Then MsgBox "Dernière date " & Format(Application.Max(a), "dd-mm-yy hh:mm")
End Sub
Les renvois à la ligne ne sont pas indispensables.

Il suffit que les dates soient bien des dates formatées "jj-mm-aa hh:mm", le tiret pouvant être un slash /.

A+

job75

XLDnaute Barbatruc
Bonjour Lionel, le forum,

Pas encore fini ce fil ?

Alors puisqu'Excel interprète correctement 29/02/2025 et 31/04/2025 je complète mon post #10 :
VB:
Sub DerniereDate()
Dim x$, i%, dat$, y$, a(), n%
x = Application.Trim(ActiveCell) 'SUPPRESPACE
For i = 1 To Len(x)
    dat = ""
    y = Mid(x, i, 14)
    If y Like "##?##?## ##:##" Then dat = Left(y, 6) & Left(Year(Date), 2) & Mid(y, 7)
    y = Mid(x, i, 16)
    If y Like "##?##?#### ##:##" Then dat = y
    If IsDate(dat) Then ReDim Preserve a(n): a(n) = CDbl(CDate(dat)): n = n + 1
Next
If n Then MsgBox "Dernière date " & Format(Application.Max(a), "dd-mm-yyyy hh:mm")
End Sub

On peut entrer les années comme on veut, avec 2 ou 4 chiffres.

La macro complète les dates de manière que les années aient toutes 4 chiffres.

Cela confirme qu'il est inutile de dire qu'un problème est résolu :rolleyes:

A+
 

soan

XLDnaute Barbatruc
Inactif
@Yeahou

t'inquiètes pas, c'est normal : Crosoft passe son temps à faire exprès de saboter les fonctionnalités des anciennes versions pour que les utilisateurs se sentent frustrés, et que par dépit, ils passent à la version ultérieure ; c'est même ce qui explique pourquoi leur service d'assistance n'est jamais disponible pour aider convenablement les utilisateurs en détresse : ils se fichent bien éperdument que la hot line soit saturée ! 😁

soan
 

Discussions similaires

Statistiques des forums

Discussions
312 239
Messages
2 086 508
Membres
103 236
dernier inscrit
Menni