Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

insertion date du jour dans filtre personnalisé

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

C

cqe

Guest
Je souhaite faire un filtre personnalisé (est inférieur à date du jour) en VBA sur une colonne contenant des dates et suis en peu perdu.
La date du jour est contenu dans une variable.
Quelqu'un peut-il m'aider sur le code à utiliser ?
 
CQE,
Je te fais parvenir un semblant d'explication. Cela risque peut-etre de te paraitre assez confu mais c'est un debut.
Le probleme avec Excel c'est que les dates sont conservees sous un format special dont pour avoir la date d'aujourd'hui la fonction now() renvoie la date avec l'heure sous forme de nombre decimal par exemple:

30/01/2006 21:27 38747.89

hors si tu utilise une date dans une cellule cela sera un chiffre entier :

31/01/2006 sera 38748.00
donc pour que cela fonctionne dans ton filtre: il faut que tu enleve la decimale de ton chiffre avec la fonction int(now()) tu obtiens cela.

Je joins un fichier pour essayer d'expliquer .

Ouvrir un nouveau classeur et taper
des donnees dates dans 'A5:A20' en mettant entetete colonne 'mesdates' (sans guillemets) en A5. Dans A2 saississez 'mesdates' (sans guillemets) Ne Tapez rien dans A3


'enlevelefiltre et filtre avec date egale ou plus grande qu'aujourd'hui
'remarquer que la date du jour obtenue
'par now() a ete transformee en entier par la fonction int()
'AFFICHE DATES>=AUJOURD'HUI
'====================
Sub plusgrandaujourdhui()
If FilterMode = True Then
ActiveSheet.ShowAllData
End If
Range('a3').Value = '>' & Int(Now())
Range('A5:A20').AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range('A2:A3'), Unique:=False

End Sub
'AFFICHE DATES<=AUJOURD'HUI
'====================
Sub pluspetitQuaujourdhui()
If FilterMode = True Then
ActiveSheet.ShowAllData
End If

Range('a3').Value = '<' & Int(Now())
Range('A5:A20').AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range('A2:A3'), Unique:=False
End Sub

=============
Si vous utilisez ce code , il faudra remplacer
Range('A5:A20')
par les coordonnees de la zone a filtrer incluant l'en tete.

Range('A2:A3')
sera a remplace par les coordonnees du critere de filtre. Ces 2 cellules devront comprendre dans la premiere l'entete de la colonne a filtrer.

Le reste devrait se faire tout seul.

Message édité par: sunnyland, à: 30/01/2006 12:56
 
- 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
3
Affichages
233
Réponses
4
Affichages
368
  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
239
Réponses
2
Affichages
217
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…