Programmation VBA Excel Fonction FILTRE

Fermé
DJ3039 Messages postés 6 Date d'inscription samedi 22 décembre 2012 Statut Membre Dernière intervention 22 décembre 2012 - 22 déc. 2012 à 21:32
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 23 déc. 2012 à 02:00
Bonjour,

Je souhaite programmer une macro-commande où je peux Filtrer SIMULTANEMENT sur 2 colonnes de Dates. Cette macro devra contenir 2 paramètres de recherche pour chaque colonne.

Exemple Vdatdeb <= Colonne 1 <= Vdatfin ET Vdatdeb <= Colonne 2 <= Vdatfin

Je sais filtrer sur 1 colonne mais pas 2 simultanément :

Exemple pour 1 seule colonne :
Selection.AutoFilter Field:=7, Criteria1:=">=01/04/2013", Operator:=xlAnd, Criteria2:="<=08/04/2013"
MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI
A voir également:

5 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
22 déc. 2012 à 21:36
bonjour,

Il te suffit de rajouter une seconde ligne avec le "Field" adéquat.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
22 déc. 2012 à 21:48
Bonjour,

Il faut utiliser un filtre élaboré, le nombre de critères n'est pas limité.
Voici un exemple (à adapter) :
https://www.cjoint.com/?BLwvTIqMAUE
0
DJ3039 Messages postés 6 Date d'inscription samedi 22 décembre 2012 Statut Membre Dernière intervention 22 décembre 2012
22 déc. 2012 à 21:56
Salut Patrice,
Tout d'abord je te remercie pour ta réponse mais saurais-tu m'indiquer une
ligne de programmation VBA de mon style :
Selection.AutoFilter Field:=8, Criteria1:=">=01/03/2013", Operator:=xlAnd, Criteria2:="<=14/03/2013"
mais où je peux rajouter la même fonction de filtre sur un deuxième Field ?
Merci
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
Modifié par gbinforme le 22/12/2012 à 22:05
Tout simplement, par exemple :

Selection.AutoFilter Field:=7, Criteria1:=">=01/04/2013", Operator:=xlAnd, Criteria2:="<=08/04/2013"  
Selection.AutoFilter Field:=9, Criteria1:=">=01/04/2013", Operator:=xlAnd, Criteria2:="<=08/04/2013" 
0
DJ3039 Messages postés 6 Date d'inscription samedi 22 décembre 2012 Statut Membre Dernière intervention 22 décembre 2012
22 déc. 2012 à 22:13
Re Salut Patrice,

Je m'excuse humblement car en fait il me manque la façon de rédiger ma ligne de façon à ce que mes 2 filtres soient simultanés. Pour être plus clair, ce que je cherche à faire c'est que dans une liste de lignes de factures où se trouvent 2 colonnes contenant des dates, il faut que je recherche toutes les lignes contenant une date comprise dans une semaine donnée : Exemple que les dates de la premières colonne soient >= au 10/01/2013 et <= 20/01/2013 et donc que j'obtienne après mon filtre les lignes correspondantes AUSSI aux dates de la 2ème colonne situées dans ces 2 mêmes dates. Le tout, bien entendu si c'est possible en utilisant du code VBA de ce genre :
Selection.AutoFilter Field:=1, Criteria1:=">=10/01/2013", Operator:=xlAnd, Criteria2:="<=20/01/2013"
Selection.AutoFilter Field:=2, Criteria1:=">=10/01/2013", Operator:=xlAnd, Criteria2:="<=20/01/2013"

Merci.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
22 déc. 2012 à 22:16
Pourquoi la proposition de gbinforme (Bonjour gb) ne convient-elle pas ?
0
DJ3039 Messages postés 6 Date d'inscription samedi 22 décembre 2012 Statut Membre Dernière intervention 22 décembre 2012
22 déc. 2012 à 22:31
Dans un listing où se trouve 2 colonnes de Dates, si je veux filtrer les lignes correspondant à une semaine, je peux avoir des lignes où la première date est incluse dans la semaine demandée et donc au moment de l'exécution de la première ligne VBA qui filtre, cela fait disparaître les lignes où la 2ème date fait aussi partie de la semaine demandée !
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié par Patrice33740 le 22/12/2012 à 23:00
Re,

Si j'ai bien compris, tu veux filtrer une plage de dates dans une colonne et ajouter aux lignes obtenues les lignes qui seraient obtenues en effectuant le même type de filtre sur une autre colonne.

C'est à dire un OU logique entre les deux filtres (et pas un ET comme proposé par gbinforme)

Dans ce cas, seul le filtre élaboré te permettra d'obtenir le résultat recherché, pour réaliser un OU il faut utiliser 2 lignes comme dans cet exemple :
https://www.cjoint.com/?BLww2qCaaRy

Note : au lieu d'envoyer le résultat sur un autre emplacement, tu peux filtrer sur place.

Cordialement
Patrice
0
DJ3039 Messages postés 6 Date d'inscription samedi 22 décembre 2012 Statut Membre Dernière intervention 22 décembre 2012
22 déc. 2012 à 23:04
D'abord merci pour prendre tout ce temps pour me répondre. Cependant mon but étant d'éviter de créer une Zone de Critères c'est pour cela que je voulais passer par des Variables et la Fonction Filtre sous VBA car je pensais qu'il était possible de cumuler 2 Field sur une même ligne !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
23 déc. 2012 à 02:00
Bonsoir,

Tu peux toujours t'ajouter une colonne calculée qui cumule tes critères pour filtrer dessus.
Mais il faudra bien que tu les saisissent quelque part ces critères (à moins qu'ils ne changent pas), donc autant utiliser le filtre élaboré.
Si c'est les mettre à droite qui te gène tu peux très bien réserver 2-3 lignes au-dessus de tes données.

eric
0