Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Combobox dans une cellule

skotleta

XLDnaute Nouveau
Bonjour,

Je possède un fichier excel, contenant 2 feuilles: la première feuille intitulée "Formulaire", et la deuxième "Base de donnée".

Sachant que cette dernière contient 1500 lignes de données, je souhaiterais créer dans la feuille Formulaire plusieurs combobox à l'intérieur des cellules tout en limitant le nombre d'opérations.

Je précise qu'ici, le type de combobox utilisé n'est pas un objet de la " Boîtes à outils contrôles ", mais une liste déroulante que je crée de la façon suivante:

Dans ma feuille " Base de données " : Selection d'une plage de cellules (d'une collone quelconque)-> Insertion -> Nom -> Défnir -> Insertion du nom (par exemple: ma_liste) puis un clique sur OK.
Ensuite, dans ma feuille " Formulaire " : Selection de la cellule qui va contenir la combobox -> Données -> Validation -> Autoriser (LISTE) -> puis dans " Source " je tape " =ma_liste ".

Existe-t-il un moyen de faire ça avec des macros, de façon à avoir une boite de dialogue qui va me demander " sélectionnez votre liste " , "nommer votre liste " etc. ?

J'espère que j'ai été assez claire.. n'hésitez pas à me demandez des précisions.

Merci d'avance.
 

Pierrot93

XLDnaute Barbatruc
Re : Combobox dans une cellule

Bonsoir Skotleta

regarde la macro ci dessous :

Code:
Sub test2()
Dim x As String, y As Range, z As Range
x = InputBox("nom de la liste")
Set y = Application.InputBox("selectionner la plage de la liste", , , , , , , 8)
Set z = Application.InputBox("selectionner la cellule qui doit" & vbLf _
    & "contenir la liste", , , , , , , 8)

ActiveWorkbook.Names.Add Name:=x, RefersTo:=y

z.Validation.Delete
z.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=" & x
End Sub

bonne soirée
@+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…