total_pipeau
Messages postés1Date d'inscriptionsamedi 15 octobre 2005StatutMembreDernière intervention15 octobre 2005
-
15 oct. 2005 à 11:46
cs_mimi0
Messages postés11Date d'inscriptionlundi 7 juillet 2008StatutMembreDernière intervention22 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 ???
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_mimi0
Messages postés11Date d'inscriptionlundi 7 juillet 2008StatutMembreDernière intervention22 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?