[Résolu] Critère filtre + Macro Chemin vers dossier

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

Brudy

XLDnaute Junior
Bonjour à vous tous,

J'ai réussis à trouver une macro de filtre élaboré qui me plait. Mais elle comporte un seul critère.

Je n'arrive pas à retranscrire la macro sur mon fichier.. alors pour en rajouter un deuxième 😱

Est ce que quelqu'un pourrait me dire ce qui cloque sur mon fichier ?

(Il y'a plusieurs macro, une pour valider/trier par ligne réalisée par Theze, une autre macro enregistré pour enregistrer en pdf et la troisième, celle du tri)

Le code module :
VB:
Sub filtre()
Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"crit"), CopyToRange:=Range("extrait"), Unique:=False
Range("b3").Activate


End Sub

Code sur feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
       If Not Application.Intersect(Target, Range("b3")) Is Nothing Then
       Call filtre
       End If
End Sub
 

Pièces jointes

Dernière édition:
Bonjour Chris, merci pour ton apport

Pourtant cette macro fonctionne parfaitement dans un autre fichier, sur la condition d'une liste déroulante comme ci-dessous

J'adore le travail qui à été produit dans le fichier, une liste déroulante qui est le critère de recherche dans la base de donnée et affichage.

Cependant je n'arrive pas à la reporter dans mon fichier pour qu'elle fonctionne.. J'ai réussis à la reporter et à lancer un début de tri. Mais elle ne réagit pas du tout pareil, avec le même code ... 😵
 

Pièces jointes

Dernière édition:
Bonjour Brudy,

Pour utiliser une macro qui applique un filtre avancé, il faut s'assurer qu'on respecte bien les exigences du filtre en question: dans le tableau de départ, dans la zone de critères et dans la zone où on va extraire, les titres des colonnes doivent être repris à chaque fois (et ils doivent être identiques, mais ça c'était correct!)
Il faut aussi veiller à ce que les plages nommées (auxquelles on fait référence dans le code) soient définies correctement et qu'on utilise le bon nom dans le code. Je n'en ai pas fait le relevé, mais il y avait plusieurs erreurs.
Certaines plages nommées ne sont connues que dans la feuille où elles figurent. Je les redéfinies pour qu'elle soient connues dans tout le classeur.
Ce que je te propose, c'est de tester la pièce jointe et, si le résultat te semble correct, aller voir quelles sont les plages nommées utilisées dans le code, puis vérifier dans le gestionnaire de noms à quelles plages elles font référence.

[Edit:] Ouarfff, presque pas en retard, moi!
 

Pièces jointes

mmh.. Alors la.

Tu as carrément devancé ma question ! Merci. Par contre je vois pas trop ce que tu as fait, tu à modifié tout mes noms définis sur classeur ?

Je comprend pas pourquoi avec ton fichier et la redéfinition de la Macro, cela marche avec un critère.

Je vais essayer avec deux maintenant, mais je ne sais pas comment l'intégrer à ma macro ? Ajouter mon critère simplement à ma plage nommée ?
VB:
Sub filtre()
Range("Base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"Crit"), CopyToRange:=Range("Extraire"), Unique:=False
Range("F8").Activate
End Sub

edit : Le deuxième critère n'est absolument pas pris en compte, j'imagine que je dois créer une nouvelle action, si quelqu'un pouvais m'expliquer ça serait awesome
 
Dernière édition:
RE
Bise à Modeste 🙂

Bonjour Chris, merci pour ton apport

Pourtant cette macro fonctionne parfaitement dans un autre fichier, sur la condition d'une liste déroulante comme ci-dessous

J'adore le travail qui à été produit dans le fichier, une liste déroulante qui est le critère de recherche dans la base de donnée et affichage.

Cependant je n'arrive pas à la reporter dans mon fichier pour qu'elle fonctionne.. J'ai réussis à la reporter et à lancer un début de tri. Mais elle ne réagit pas du tout pareil, avec le même code ... 😵

Dans ce fichier Crit ecorrespond à B2:B3 soit deux cellules, idem pour crit2

Dans le premier Crit1 et Crit2 correspondent chacun à une seule cellule donc Excel n'a aucun moyen de deviner dans quelle colonne il doit chercher Plaintel Raussan
 
Re,

Il ne faut pas "foncer tête baissée", mais prendre le temps de relever les différences au niveau des noms de plages utilisés et ce à quoi elles renvoient (par exemple, la plage "crit" que tu viens de renseigner dans les 3 lignes de code n'existe plus dans mon fichier, j'entends !!)
Ne t'intéresse pour le moment qu'à ces trois lignes: on verra par la suite comment faire en sorte que la macro s'exécute au changement de valeur en F8:G8 (les cellules fusionnées en G7:H7 sont à éviter)
À ce stade, tu peux renseigner les 2 critères ou un seul.

Bise aussi, chris 🙂
 
Merci encore de vos réponse modeste et Chris,

Je m'excuse si je semble foncer tête baissée mais ce n'est pas le cas, j'ai un nombre de fichier test incalculable et entre mon premier fichier posté ici et vos réponse, j'ai déjà ajusté 25 fois le fichier 😵 Il est possible que je m'y perde, notamment quand je colle une macro :'(

Donc ici le code qui fonctionne correctement et que j'utilise :
VB:
Sub filtre()
Range("Base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"Crit"), CopyToRange:=Range("Extraire"), Unique:=False
' toutes les données sont correctes ici
Range("F8").Activate
End Sub

J'ai donc ajusté mes plages avec les noms adéquats, retiré la fusion des cellules en G et H7. testé si des créations de feuilles modifierais l'action du code (ce n'est pas le cas) et voici mon fichier fonctionnel à une condition.

Le code tri correctement selon l'entrepot et les données s'enlevent quand je change d'entrepot.
 

Pièces jointes

Dernière édition:
Salut Bebere, re Modeste.

Je veux bien passer ma plage "crit" en F7:G8, mais elle créer une erreur dans ma macro, quand j'essaye de trier via "Entrepot" erreur 1004, Range de l'objet global à échoué'

Et le critère semaine n’entraîne aucune réaction de la macro

Rectification 15h40, je ne sais pourquoi mais ma macro avait modifiée la plage à prendre en compte.
Donc merci beaucoup modeste, la macro prend enfin en compte les 2 critères...

Je vous laisse voir par vous même le fichier

Le critère "Semaine" n’entraîne pas l'action de tri, seul le critère entrepot entraîne un tri.
J'ai switché dans la macro pour garder un sens logique, sélection Entrepot, selection semaine puis Tri.
 

Pièces jointes

Dernière édition:
Bonsoir,

ça vaut ce que ça vaut, mais tu peux aussi adapter le code de l'objet Feuil14, pour que le filtre se déclenche -au choix- à la modification de F8 ou G8.
La seule modif à faire au niveau de la Sub Worksheet_Change est
Code:
If Not Application.Intersect(Target, Range("F8:G8")) Is Nothing Then
 
Merci beaucoup Modeste, ça fonctionne parfaitement,

A tout hasard, si tu passes par ici de bon matin,

Mon code enregistre en pdf, au bon nom (Les critères de recherche) , mais il ne suit pas le chemin que je lui est indiqué..

VB:
Sub Macro1()
'
' Macro1 Macro
'

'
    Sheets("Envoi").Select
    Sheets("Envoi").Copy
   
     Chemin = "C:\Users\ybruzac\Desktop\Récap Entrepot"
    texte = Range("entrepot") & " - " & Range("semaine")
    Application.DisplayAlerts = False
   
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & texte, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    ActiveWindow.Close

End Sub
 
- 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

Discussions similaires

Réponses
7
Affichages
626
Réponses
3
Affichages
875
Retour