Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Paramétrage du filtre automatique dans une macro

2 réponses
Avatar
Ambiorix
Bonjour,

Je tâtonne encore avec VBA dans Excel; j'arrive à réaliser des macros grâce
à l'outil d'enregistrement d'une macro, mais voilà qu'un problème se présente
que je n'arrive pas à résoudre...
Voici la ligne qui me pose problème :

Sélection.FiltreAutomatique Champ:=9; Critère1:="<14/12/06"; _
Opérateur:=xlEt

Et dans la ligne c'est la date qui m'embête. Je voudrais connaître la
syntaxe (je suppose qu'elle doit exister) pour indiquer la date du jour + 30
jours et non pas la date que j'ai tapée comme critère personnalisé lorsque
j'ai enregistré cette macro.

Quelqu'un pourrait-il m'aider?
merci d'avance :-)

2 réponses

Avatar
MichDenis
Un exemple de ligne de code :

Selection.AutoFilter field:=1, Criteria1:="<" & CDate("29/12/06") * 1

Ceci devrait être bon de la version Excel 97 à aujourd'hui.



"Ambiorix" a écrit dans le message de news:

Bonjour,

Je tâtonne encore avec VBA dans Excel; j'arrive à réaliser des macros grâce
à l'outil d'enregistrement d'une macro, mais voilà qu'un problème se présente
que je n'arrive pas à résoudre...
Voici la ligne qui me pose problème :

Sélection.FiltreAutomatique Champ:=9; Critère1:="<14/12/06"; _
Opérateur:=xlEt

Et dans la ligne c'est la date qui m'embête. Je voudrais connaître la
syntaxe (je suppose qu'elle doit exister) pour indiquer la date du jour + 30
jours et non pas la date que j'ai tapée comme critère personnalisé lorsque
j'ai enregistré cette macro.

Quelqu'un pourrait-il m'aider?
merci d'avance :-)
Avatar
JB
Bonjour,

[A5].AutoFilter field:=5, Criteria1:=">=" & CDbl(Date + 30)

Qq autres scénarios de date:

http://cjoint.com/?mBphLBuuXa

Sub filtre1Date()
[A5].AutoFilter field:=5, Criteria1:=--Range("A1") ' date en A1
End Sub

Sub filtreSup1Date()
[A5].AutoFilter field:=5, Criteria1:=">=" & CDbl(CDate("21/10/1970" ))
[A5].AutoFilter field:=5, Criteria1:=">=" & CDbl(Range("A1"))
[A5].AutoFilter field:=5, Criteria1:=">=" & CDbl(CDate("21/10/1970")
+ 30)
[A5].AutoFilter field:=5, Criteria1:=">=" & CDbl(Date)
[A5].AutoFilter field:=5, Criteria1:=">=" & CDbl(Date + 30)
End Sub

Sub filtre2Dates() ' dates en E1 et E2
[A5].AutoFilter field:=5, _
Criteria1:=">" & CDbl(Range("E1")), Operator:=xlAnd, _
Criteria2:="<=" & CDbl(Range("E2"))
End Sub

Cordialement JB



Bonjour,

Je tâtonne encore avec VBA dans Excel; j'arrive à réaliser des macr os grâce
à l'outil d'enregistrement d'une macro, mais voilà qu'un problème s e présente
que je n'arrive pas à résoudre...
Voici la ligne qui me pose problème :

Sélection.FiltreAutomatique Champ:=9; Critère1:="<14/12/06"; _
Opérateur:=xlEt

Et dans la ligne c'est la date qui m'embête. Je voudrais connaître la
syntaxe (je suppose qu'elle doit exister) pour indiquer la date du jour + 30
jours et non pas la date que j'ai tapée comme critère personnalisé lorsque
j'ai enregistré cette macro.

Quelqu'un pourrait-il m'aider?
merci d'avance :-)