Macro avec Filtre élaboré
Résolu
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis bloqué sur une macro qui consiste à effectuer un filtre élaboré avec copie des données sur une autre feuille.
pour créer ma macro je me suis aidé de l'enregistreur, lors de l'enregistrement le filtre fonctionne correctement, mais quand j'exécute la macro je n'ai pas de bocage ni de message d'erreur mais je n'ai pas le résultat du filtre élaboré.
ci-dessous une partie de mon code :
Pouvez- vous m'aider
Merci à tous ceux qui voudront bien ce pencher sur mon problème
Je suis bloqué sur une macro qui consiste à effectuer un filtre élaboré avec copie des données sur une autre feuille.
pour créer ma macro je me suis aidé de l'enregistreur, lors de l'enregistrement le filtre fonctionne correctement, mais quand j'exécute la macro je n'ai pas de bocage ni de message d'erreur mais je n'ai pas le résultat du filtre élaboré.
ci-dessous une partie de mon code :
'pour ne pas voir les changements d'écran Application.ScreenUpdating = False 'recherche des éléments Application.Goto Reference:="BASE" Sheets("feuille1").Select Range("BASE").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("criteres"), CopyToRange:=Range("resultat"), Unique:=False
Pouvez- vous m'aider
Merci à tous ceux qui voudront bien ce pencher sur mon problème
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
- Filtre whatsapp - Accueil - Messagerie instantanée
- Jitbit macro recorder - Télécharger - Confidentialité
- Filtre teams - Accueil - Visio
8 réponses
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.
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)
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
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