Macro avec Filtre élaboré
Résolu/Fermé
Damien@
Messages postés
28
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
6 février 2015
-
21 janv. 2011 à 12:06
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 30 janv. 2011 à 21:35
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 30 janv. 2011 à 21:35
A voir également:
- Macro avec Filtre élaboré
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Filtre teams - Accueil - Visio
- Jitbit macro recorder - Télécharger - Confidentialité
8 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
29 janv. 2011 à 17:53
29 janv. 2011 à 17:53
Bonjour Damien,
Tu viens de mettre le doigt sur un problème que je n'avais pas remarqué et je t'en remercie.
Cette macro qui fonctionne parfaitement sous Excel 2003, ne fonctionne plus de la même façon avec Excel 2007.
Pour définir les critères de filtrage des dates sous Excel 2003, on pouvait écrire indifféremment <=31/12/2010 ou <= 40543 (numéro de série de la date).
Je ne sais pas pour quelle raison Excel 2007 n'accepte plus la première syntaxe (pourtant bien plus pratique visuellement), il l'interprète comme : supérieur ou égal à 31 divisé par 12 divisé par 2010 !. Peut-être existe-il un correctif chez Microsoft, mais je n'ai pas cherché.
La solution consiste donc à utiliser la seconde syntaxe. On peut aussi définir les critères par des formules par exemple :
Au lieu d'écrire
>= 31/12/2010
on peut écrire
=">=" & DATEVAL("31/12/2010")
C'est bien évidemment beaucoup moins visuel mais ça fonctionne.
Tu viens de mettre le doigt sur un problème que je n'avais pas remarqué et je t'en remercie.
Cette macro qui fonctionne parfaitement sous Excel 2003, ne fonctionne plus de la même façon avec Excel 2007.
Pour définir les critères de filtrage des dates sous Excel 2003, on pouvait écrire indifféremment <=31/12/2010 ou <= 40543 (numéro de série de la date).
Je ne sais pas pour quelle raison Excel 2007 n'accepte plus la première syntaxe (pourtant bien plus pratique visuellement), il l'interprète comme : supérieur ou égal à 31 divisé par 12 divisé par 2010 !. Peut-être existe-il un correctif chez Microsoft, mais je n'ai pas cherché.
La solution consiste donc à utiliser la seconde syntaxe. On peut aussi définir les critères par des formules par exemple :
Au lieu d'écrire
>= 31/12/2010
on peut écrire
=">=" & DATEVAL("31/12/2010")
C'est bien évidemment beaucoup moins visuel mais ça fonctionne.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
22 janv. 2011 à 23:00
22 janv. 2011 à 23:00
Bonjour,
Voici un exemple de Filtre élaboré.xls exécuté par macro (visualiser le code de la feuille critères)
Voici un exemple de Filtre élaboré.xls exécuté par macro (visualiser le code de la feuille critères)
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
950
22 janv. 2011 à 23:16
22 janv. 2011 à 23:16
Salut le forum
Inutile de poster en double : Macro avec filtre élaboré
Mytå
Inutile de poster en double : Macro avec filtre élaboré
Mytå
Damien@
Messages postés
28
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
6 février 2015
3
23 janv. 2011 à 10:13
23 janv. 2011 à 10:13
bonjour Patrice
J'ai consulté ton fichier, et si je l'applique comme si dessous :
début/fin
Nom Date d'achat article quantité date de livraison
M.A >=01/01/2010
M.A <=01/12/2010
la macro fonctionne bien mais je n'obtient pas le résultat voulu car se positionnement de critères signifie "et"
alors que moi je souhaite les données situé entre le 01/01/2010 et le 01/12/2010
il faut donc que la zone de critère soit de la manière suivante pour dire "ou" :
début fin
Nom Date d'achat Date d'achat article quantité date de livraison
M.A >=01/01/2010 <=01/12/2010
voilà j'espère avoir été assez claire.
merci
J'ai consulté ton fichier, et si je l'applique comme si dessous :
début/fin
Nom Date d'achat article quantité date de livraison
M.A >=01/01/2010
M.A <=01/12/2010
la macro fonctionne bien mais je n'obtient pas le résultat voulu car se positionnement de critères signifie "et"
alors que moi je souhaite les données situé entre le 01/01/2010 et le 01/12/2010
il faut donc que la zone de critère soit de la manière suivante pour dire "ou" :
début fin
Nom Date d'achat Date d'achat article quantité date de livraison
M.A >=01/01/2010 <=01/12/2010
voilà j'espère avoir été assez claire.
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
26 janv. 2011 à 23:02
26 janv. 2011 à 23:02
Bonjour,
Les critères que tu as employé permettent de filtrer les valeurs qui répondent à la première ligne de critères ou à la seconde ligne de critères.
C'est à dire :
OU(ET(nom=M.A; Date>=01/01/2010);ET(nom=M.A; Date<=01/12/2010))
Ce que tu voudrais c'est :
ET(nom=M.A; Date>=01/01/2010;Date<=01/12/2010)
Pour réaliser la fonction ET il suffit de mettre les critères sur la même ligne sur 3 colonnes en répétant deux fois Date d'achat soit :
Les critères que tu as employé permettent de filtrer les valeurs qui répondent à la première ligne de critères ou à la seconde ligne de critères.
C'est à dire :
OU(ET(nom=M.A; Date>=01/01/2010);ET(nom=M.A; Date<=01/12/2010))
Ce que tu voudrais c'est :
ET(nom=M.A; Date>=01/01/2010;Date<=01/12/2010)
Pour réaliser la fonction ET il suffit de mettre les critères sur la même ligne sur 3 colonnes en répétant deux fois Date d'achat soit :
Nom Date d'achat Date d'achat M.A >=01/01/201 <=31/12/2010
Bonjour patrice
Tu as bien saisie ma demande,
Le filtre élaboré fonctionne bien ( en manuel), mais mon problème est que lorsque j'applique une macro pour réaliser se filtre, alors la macro ne me mais pas de résultat ni même de message d'erreur elle m'affiche tout simplement un tableau vierge.
Je te met en pièce jointe un fichier test qui reprend mon problème
http://www.cijoint.fr/cjlink.php?file=cj201101/cij3gR92G2.xlsm
Tu pourra voir par toi même quand réalisant ce filtre en manuel il fonctionne bien, mais quand je lance la macro qui effectue ce même filtre alors le tableau est vierge.
merci de ton aide
Tu as bien saisie ma demande,
Le filtre élaboré fonctionne bien ( en manuel), mais mon problème est que lorsque j'applique une macro pour réaliser se filtre, alors la macro ne me mais pas de résultat ni même de message d'erreur elle m'affiche tout simplement un tableau vierge.
Je te met en pièce jointe un fichier test qui reprend mon problème
http://www.cijoint.fr/cjlink.php?file=cj201101/cij3gR92G2.xlsm
Tu pourra voir par toi même quand réalisant ce filtre en manuel il fonctionne bien, mais quand je lance la macro qui effectue ce même filtre alors le tableau est vierge.
merci de ton aide
Bonjour, Patrice33740
Effectivement en changeant le format de la date en nombre tout fonctionne bien.
Grâce à toi je suis enfin débloqué. l'informatique est parfois capricieux.
Concernant le message de Mytà le fait de mettre ' devant ne change rien.
Merci à tous et surtout à toi patrice.
Effectivement en changeant le format de la date en nombre tout fonctionne bien.
Grâce à toi je suis enfin débloqué. l'informatique est parfois capricieux.
Concernant le message de Mytà le fait de mettre ' devant ne change rien.
Merci à tous et surtout à toi patrice.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
30 janv. 2011 à 21:35
30 janv. 2011 à 21:35
De rien, au plaisir de te relire sur le forum
Modifié par Mytå le 29/01/2011 à 20:12
Patrice pour le correctif, je ne sais pas mais on peut utiliser l'apostrophe dans l'écriture
Mytå