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

S

sarduken

Guest
Bonjour a tous
j aurai vraiment besoin de votre aide
j ai un tableau sous excel dont une colonne contient des dates au format dd/mm/yyyy. J ai un filtre sur l ensemble du tableau et je cherche a ne garder que les lignes correspondant a une date anterieure a une date donnée .Sous excel pas de pb,quand j'enregistre le code il me donne ca:


Selection.AutoFilter Field:=5, Criteria1:="<21/05/2003", Operator:=xlAnd

mon probleme c que la macro ne marche pas ensuite quand je l execute..
les données sont filtrées mais plus aucune ligne ne correspond a mon critere alors qu avant si !

Merci d'avance
Sarduken
 
ça vient de ce qu'Excel considère ta date comme une chaîne de caractère dans ce contexte. Pour remédier à cela, 2 solutions :

- soit, si tu veux toujours filtrer la même date, tu modifies ta ligne en :

Selection.AutoFilter Field:=5, Criteria1:=CDate("<21/05/2003")

- soit, et c'est mieux parce que plus souple, tu crées une variable Date qui conviendra mieux à Excel :

Dim LaDate As Date
LaDate = "21/05/2003"
Selection.AutoFilter Field:=5, Criteria1:=LaDate

Attention, j'ai testé cette option dans Excel XP, mais je ne te garantis pas son fonctionnement dans Excel 2000. La gestion des dates (tri, recherche via la méthode Find de VBA) est une des grandes améliorations de la version XP par rapport aux précédentes versions.
 
merci Ti de ta reponse si rapide
j'ai Excel 2002 c la meme chose qu' XP non?
ta deuxieme solution marche bien mais seulement quand le critere est une égalité
dans le cas d'une inégalité :

Dim ladate As Date
ladate = "22/05/2003"
Selection.AutoFilter Field:=5, Criteria1:="<" & ladate

la ca marche plus j ai le meme pb qu avant
j ai compris que c t a cause du format mais je vois pas comment resoudre ce pb

a +
sarduken
 
Bon, en fait mon explication précédente n'était pas tout à fait juste. Cela tient à ce que nous parlons Français, mais que, dans VBA, tout se passe en Anglais (et je l'oublie tout le temps !). Donc tu dois transformer cette date au bon format :

- soit tu l'introduis directement au bon format :

Selection.AutoFilter Field:=5, Criteria1:="<05/21/2003"
(le mois vient en premier, puis le jour)

- soit, si tu gardes ta variable date, tu la transformes gràce à la méthode Format :

Dim LaDate As Date
LaDate = "29/05/2003"
Selection.AutoFilter Field:=2, Criteria1:="<" & Format(LaDate, "mm/dd/yyyy"), Operator:=xlAnd
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
531
  • Question Question
Microsoft 365 format date
Réponses
3
Affichages
139
Réponses
3
Affichages
380
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
530
Réponses
3
Affichages
895
Retour