VBA date plus recente

Bonjour à tous,

Excusez moi par avance pour les fautes d'orthographe ou de langage dont je pourrais faire preuve.

Sans plus tarder voici sur quoi je bloque depuis quelques heures, je dois creer un filtre automatique qui me permettra de récupérer la date la plus ancienne afin de me permettre d'actualiser mon TCD.

La partie actualisation marche et à était faite par contre en ce qui concerne le filtre j'ai plus de mal, le code en question :

ActiveSheet.Range("$A$1:$BE$109113").AutoFilter

Field:=22, Operator:= _

xlFilterValues,

Criteria2:=Array(2, "12/3/2021")

J'aimerais remplacer la date 12/03/2021 par la date la plus récente de ma colonne.

PS : Je suis débutant en VBA du coup j'essaye d'apprendre un maximum, donc tous vos conseils sont bons a prendre !

Merci par avance pour votre aide !

Bonjour,

Normalement, si tu remplaces ta date écrite en dur dans ton filtre par ceci, cela devrait fonctionner :

Application.WorksheetFunction.Max(activesheet.range(A:A))
Tu peux aussi créé une variable qui accueillerait cette valeur. Ce code te renvoie normalement la valeur maximale d'une plage donnée. C'est l'équivalent VBA de la fonction max dans Excel. 

Alors déja un grand MERCI ! je ne m'attendais pas à une réponse aussi rapide, vraiment merci beaucoup !

Cependant j'ai un petit souci, lorsque je lance la macro ce message s'affiche :

image

Re,

J'ai oublié de mettre A:A entre guillemets, désolé. Et puis j'avais tapé ça sur mon téléphone, sans tester. Après test, ça ne fonctionne à priori pas dans tous les cas ...

Effectivement dans mon cas ca ne semble pas marché j'essaye des choses depuis avant mais je suis un peu perdu ! En tout cas merci pour ton aide !

Bonjour,
Un exemple à adapter.
J'ai mis les données sous forme de tableau structuré (on est bientôt en 2022).
Cdlt.

Note : Peux-tu préciser ta version Excel dans ton profil ?

43yuki68.xlsm (16.37 Ko)
Public Sub FilterData()
Dim lo         As ListObject
Dim lCol       As Long
Dim dtm

    Set lo = Range("t_Data").ListObject
    With lo
        If .ShowAutoFilter Then .AutoFilter.ShowAllData
        lCol = .ListColumns("Date").Index
        dtm = WorksheetFunction.Max(.ListColumns(lCol).DataBodyRange)
        dtm = Format(dtm, "dd/mm/yyyy")
        .Range.AutoFilter field:=lCol, Criteria1:=Array(2, dtm)
    End With

End Sub

Bonjour,

Merci beaucoup pour votre réponse.

Yes je vais mettre ma version d'Excel il me semble c'est celle de 2016.

En ce qui concerne le code, il faut que j'adapte c'est a dire ? je rajoute ma colonne ou il y'a mes dates uniquement ?

Ou bien ai-je d'autre point a adapter ?

Et merci encore pour vos réponses :)

J'ai essayé le code en mettant ma colonne, et ca me met le message suivant :

image

Re,
Tu mets des données sous forme de tableau structuré. Tu renommes ce tableau avec un nom signifiant.
Dans le code VBA, tu remplaces "t_Data" par le nom de ton tableau.
Tu remplaces "Date" par l'en-tête de ta colonne (22 ?).

Sinon, joins un petit classeur.

Cdlt.

Jean Eric : Encore une fois merci à toi pour ton aide !

J'ai fait comme tu m'a dit et ca me met un message d'erreur "l'indice n'appartient à la sélection"

Le fichier est trop lourd, je ne peux pas le partager.

Le débogueur me renvoi a cette ligne de code

image

Re,
L'en-tête "ADDDATE" nest pas reconnu. Vérifie qu'il ny a pas un espace qui traîne.
Cdlt.

Parfait le code marche ! Merci

Cependant il reste un petit souci, c'est qu'il sélectionne aucune date, il filtre sur aucune date dans ma colonne..

Bonsoir,
Que penser de ton dernier message ?
Sans fichier représentatif, il va être difficile de poursuivre !...
Cdlt.

Bonsoir,

Merci d'avoir pris le relai en tout cas Jean-Éric.

Bonne soirée 😉

Merci a tous les deux pour vos reponses,

Jean-Eric : Mon fichier est trop lourd pour être mis ici, cependant la fonction filtre marche mais aucun champ ne se sélectionne. Je vais essayer de mettre le fichier en parallèle

Bonjour,
Crée un petit fichier représentatif de tes données avec quelques lignes.
Cdlt.

La macro de Jean Eric marche merci beaucoup :) !

Bonjour,
Merci de ce retour et d'avoir clos le sujet.
Maintenant, ou était ton erreur ?
Cdlt.

Rechercher des sujets similaires à "vba date recente"