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 !
Je viens à vous au sujet d'un problème que je rencontre sur un fichier "professionnel".
En effet,je souhaite simplifier l'utilisation de mon programme en listant mes macros sous forme de menu déroulant.Etant donné que je ne suis pas un adepte de VBA,pouvez vous me donner la marche à suivre pour effectuer la tache suivante?
Sur la page "BILAN SEMAINE COMMERCIAUX" je souhaite utiliser la liste déroulante vierge située au dessus du tableau pour filtrer les agences.Ainsi la liste proposera le nom de chaque agence et en cliquant sur l'une d'entre elles la macro "tri agence" que definirai ultérieurement sera activée.
Je suis conscient que je me complique la tâche pour rien car un simple click sur le filtre me permettrai d'avoir l'effet escompté mais le but et de peaufiner mon savoir faire.😉
Bonjour
Je suis sur qu'avec un peu de recherche tu vas y arriver
1/clic de droit sur le déroulant et format de controle.
2/Plage d'entrée ou se situe ta liste des macros.
3/Cellule liée : la ou sera renvoyée la valeur de l'index correspondant à ta sélection dans la combo.
4/formule en D12 : =INDEX(H8:H9;D11;1)
qui te ramène le nom de la macro sélectionnée
5/Clic de droit sur la combo et visualiser le code et
Découvrir la macro.
Bonjour
Il n'y a pas de macro en H8 et H9 : selement le nom des macros qui seront appelées par la sélection du déroulant.
La macro est affecté au déroulant lui même.( des le changement de la valeur du déroulant)
Regarder attentivement les macros dans le module .
J'ai cité dans premier message que VBA ne me parlait pas plus que ca pour le moment.Je travaille sur ce programme depuis près de 3 mois donc ce ne sont pas mes recherches qui ont manqué.Si je fais appel à votre aide c'est pour avoir une réponse adaptée à mon programme et non une simple piste de réflexion.Votre exemple correspond très certainement à mon problème mais rien n'est très concret.Ainsi,pour m'épargner de nouvelles heures de recherches et d'énervement,n'est il pas plus simple de me faire parvenir mon fichier corrigé?
Je ne rechigne pas devant la recherche mais là j'ai du mal.
Bonsoir
Pourquoi j'ai repris un autre fichier pour l'exemple.
parce que le tien est incompréhensible:
Tu as défini des noms qui ne fonctionnes pas ( Ref# dans tes références de noms)
a partir de la comment peut t'on t'aider?
il faut d'abord alimenter le déroulant avec le nom de tes macros , mais comment constituer ta liste alimentant le déroulant ?
A partir de quelle données??
C'est bien pour cela que je demande quelle est la marche à suivre pour alimenter le déroulant avec des macros!
Pas besoin d'avoir toutes les références su tableau!Le principal y est.
Ce que je veux est un menu déroulant avec les données suivantes:
LE BOUSCAT
RION DES LANDES
LE TEICH
LIBOURNE
LA ROCHELLE
LANGON
PERIGUEUX
NANTES
TOULOUSE
CAEN
RENNES
BOURGES
Lorsque je click sur l'une des agences (Par exemple LE BOUSCAT) dans le menu déroulant,je veux que le filtre de la colonne Agences ne garde que les lignes où l'agence est LE BOUSCAT.
Je vais refaire les macros car j'ai supprimé des pages parce que le fichier était trop lourd pour être envoyé.
Pour en revenir à votre fichier, comment avez vous fait pour obtenir les cases h8 et h9?
Vous avez inséré une liste déroulante via l'onglet développeur
Vous avez réglé le format de contrôle
Et pour la troisième fois,je vous demande comment vous avez procédé!
Certes vous n'avez pas les macros sur mon fichier mais est ce que ca vous empêche de m'expliquer comment vous avez fait?
Si vous m'aviez demandé de rajouter les macros dès le début je l'aurais fait volontier.Si le but de ce forum est de régler le problème sans en expliquer la solution je me suis trompé d'endroit et je m'en excuse.
Enfin,dans le charte de ce forum il est stipulé que la politesse est de rigueur,pour moi le tutoiement n'est pas une forme de politesse.
A bon entendeur
Je ne pense cependant pas être intime avec vous.Bref.Ci joint se trouve le fichier avec 3 macros qui correspondent au filtre de 3 agences.Le fichier est il conforme à vos attentes?
Re : Affecter macro à chaque valeur d'une liste déroulante.
Bonsoir,
Oh Rellien ! Les explications de Jean-Marcel étaient suffisantes pour la méthode qu'il proposait.
Pour se contenter de filtrer, une seule macro devrait suffire comme décrit dans le premier fichier joint.
A noter que la liste est initialisée, ici, à partir de la colonne C (préoccupation première de tout un chacun).
Code:
Dim Ouvre As Boolean
Private Sub ComboBox1_DropButtonClick()
Dim C As Range
If Ouvre = True Then Range("$A$14:$N$134").AutoFilter Field:=3, Criteria1:=ComboBox1.Text
ComboBox1.Clear
For Each C In Range("C15:C134")
ComboBox1 = C
If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem C
Next
Combobox1=""
Ouvre = True
End Sub
Pour éviter une réinitialisation à chaque coup, on peut le faire à l'ouverture du fichier comme dans le second exemple mais avec l'inconvénient d'avoir une liste non réactualisable ainsi.
Il n'empêche que l'exactitude de la réponse est fonction de la demande et, si je passe à côté de la problématique, il faudra faire avec !
Merci pour vos explications.Je ne connaissais pas les systèmes de combobox...
Le tout semble convenir et je vous en remercie.
Ne voyez aucune forme de snobisme dans mes précédents messages.J'estime que le débat est clos et ne vois pas l'intérêt d'épiloguer sur le sujet.Ainsi je ne répondrai pas au dernier message de Jean Marcel qui pour moi est vide de sens et inutile.
Oh Rellien ! Les explications de Jean-Marcel étaient suffisantes pour la méthode qu'il proposait.
Pour se contenter de filtrer, une seule macro devrait suffire comme décrit dans le premier fichier joint.
A noter que la liste est initialisée, ici, à partir de la colonne C (préoccupation première de tout un chacun).
Code:
Dim Ouvre As Boolean
Private Sub ComboBox1_DropButtonClick()
Dim C As Range
If Ouvre = True Then Range("$A$14:$N$134").AutoFilter Field:=3, Criteria1:=ComboBox1.Text
ComboBox1.Clear
For Each C In Range("C15:C134")
ComboBox1 = C
If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem C
Next
Combobox1=""
Ouvre = True
End Sub
Pour éviter une réinitialisation à chaque coup, on peut le faire à l'ouverture du fichier comme dans le second exemple mais avec l'inconvénient d'avoir une liste non réactualisable ainsi.
Il n'empêche que l'exactitude de la réponse est fonction de la demande et, si je passe à côté de la problématique, il faudra faire avec !
Vos fichiers sont parfait.Je suis tout à fait d'accord avec les fait que l'exactitude de la réponse est fonction de la demande.Ayant expliqué dans mon premier message que souhaitais faire évoluer le fichier que j'ai joint,j'ai pensé que l'on m'aurais guidé directement sur les modifications à apporter pour que l'on puisse répondre à ma demande.On m'a directement répondu "ton fichier est incompréhensible".Certes mais comment le savoir si on ne m'explique pas!Merci à vous pour votre aide et Mea Culpa si j'ai dérogé aux régles de ce forum.
Bonjour
Je suis sur qu'avec un peu de recherche tu vas y arriver
1/clic de droit sur le déroulant et format de controle.
2/Plage d'entrée ou se situe ta liste des macros.
3/Cellule liée : la ou sera renvoyée la valeur de l'index correspondant à ta sélection dans la combo.
4/formule en D12 : =INDEX(H8:H9;D11;1)
qui te ramène le nom de la macro sélectionnée
5/Clic de droit sur la combo et visualiser le code et
Découvrir la macro.
je viens de découvrir votre forum et j'ai déroulé la procédure ci dessus.
tout est correct, sauf pour le point 5 car je ne sais pas quoi indiquer dans la fenêtre de code (je ne maîtrise pas le VBA). Je suppose que l'écriture doit être du type "quand l'index = n, alors éxécuter la macro correspondante", mais je ne sais pas l'écrire. quelqu'un porrait-il m'éclairer?
- 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