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 ???
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
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)
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?