Excel : Comment attacher une Liste déroulante à une cellule Excel ?

Résolu
total_pipeau Messages postés 1 Date d'inscription samedi 15 octobre 2005 Statut Membre Dernière intervention 15 octobre 2005 - 15 oct. 2005 à 11:46
cs_mimi0 Messages postés 11 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 22 juillet 2008 - 22 juil. 2008 à 10:25
Bonjour camarades programmeurs,

Je suis en train de me faire une petite application en VB6.0 sous Excel me permettant de faire la gestion de compte personnel.
Je suis débutant en VBA!!
Je voudrais arriver à accrocher à tout un ensemble de cellule une liste déroulante.
C'est à dire en prenant un exemple
Dans la première colonne je mets des intitulés de dépenses (ex retrait bancaire ou versement d'un compte A vers B ...)
et je voudrais dans la deuxième colonne mettre en vis à vis de chaque élément de la première colonne une liste déroulante
me permettant de trier par type d'action chaque élément de cette première colonne (ex Retrait, Entretien voiture...).
Tout ca dans le but de créer des catégories de dépense pour distinguer les différentes parties de mon budget.

J'ai trouvé jusqu'à présent :
Sub AjoutListeDeroulante()
Dim lb


With Worksheets(1)
Set lb = .Shapes.AddFormControl(xlDropDown, 100, 10, 100, 10)
lb.ControlFormat.ListFillRange = "A1:A10"
End With
End Sub

Mais malheureusement cette liste déroulante n'est pas attachée à une cellule. C'est à dire lorsque je redimensionne les lignes et colonnes, la liste déroulante n'est plus positionnée l où elle doit être.

Alors ma question est : Comment créer la même chose que les Filtres automatiques ? C'est à dire ces liste déroulantes attachées
à une celulle en particulier ???

Merci de votre patience et de votre aide !!

3 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
17 oct. 2005 à 12:00
Tu t'embêtes là à essayer de coder. Excel permet de faire ça de lui même.

Tu prends une feuille sur laquelle tu marques le contenu de ta liste déroulante.
Ex :
A1 = Retrait
A2 = Versement
A3 = Virement

Ensuite, tu sélectionnes ta zone (de A1 à A3 donc)
Tu vas dans le menu Insertion \ Nom \ Définir et tu donnes un nom à la zone (Opérations par exemple).

Ensuite, tu vas sur ta cellule où tu veux donner le choix :
Tu vas dans le menu Données \ validation
Comme critère de validation, dans la combo Autoriser, tu prends le choix Liste et en source tu tapes "=" et le nom de ta zone (dans mon exemple, la source : =Opérations

Tu valides et voilà, le tour est joué.

Molenn
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 oct. 2005 à 20:19
Salut
Regarde voir du côté des Filtres automatiques :
Dans la cellule juste au dessus de la colonne qui t'interesse, insères le texte, par exemple "Nature"
Ensuite, met ton curseur sur cette cellule et va dans le menu Données, Filtre, Filtre automatique.
Cette cellule possedera alors le petit triangle de la liste déroulante et quand tu cliques dessus, ... tu verras bien.
Si tu veux reproduire ça en code VBA, refait cette manipulation après avoir lancé l'enregistrement d'une nouvelle macro. Ensuite, va jeter un oeil au code et tu verras qu'il suffit de :
- Sélectionner une cellule d'entête de colonne
- de mettre derrière la commande Selection.AutoFilter
Cette commande est affectée à la feuille, donc si tu as plusieurs colonnes à traiter, sélectionne toutes les cellules d'entête puis active l'AutoFilter.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
cs_mimi0 Messages postés 11 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 22 juillet 2008
22 juil. 2008 à 10:25
Bonjour,
 je suis daccord c bcp plus simple sur exel,
parcontre cette procedure ne permet pas de selectionne plusieurs choix

pour avoir une liste à choix multiple là il faudra passe par  une macro  e une userforme, dailleurs j'ai une question la dessus : comment arriver à a voir tout les choix selectioné dans la mme cellule . et comment faire declencher la fenetre à partir  de la cellule d'ou l'on click?

 cordialement,
0
Rejoignez-nous