Création liste déroulante vba

Fermé
Grabbish - 14 sept. 2009 à 13:42
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 14 sept. 2009 à 14:07
Bonjour,


J'ai un petit souci pour créer une liste déroulante en vba, je m'explique.

Je souhaite creer une liste déroulante associée à une cellule Excel. Les items de cette liste doivent être des éléments d'un tableau que j'ai obtenu à la suite d'une macro. Ce tableau ne doit pas être affiché dans une feuille excel. De plus les éléments et la taille de ce tableau ne sont pas fixes, cela va changer selon les configurations qu'on souhaite avoir.

Je souhaite donc créer une liste déroulante qui a pour item les éléments d'un tableau.

Pour créer une liste déroulante pour l'instant, j'ai utilisé l'enregistreur de macro et l'outil de validation des données. Cela me génère le code suivant :

With Selection.Validation
.Delete
.Add type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=""
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Ce que je souhaiterais est que cette liste déroulante prennent comme item les éléments du tableau action_type() que j'ai obtenu juste avant. De plus comme ce tableau n'est pas fixe, je l'obtiens grâce à des redim preserve.

Lorsque je teste le code avec Formula:= action_type (1) , il me renvoie une erreur de compilation qui dit : "Seuls les types définis par l'utilisateur et qui sont définis dans les modules d'objets publics peuvent être convertis".

S'il vous plait, ca fait 2 jours que je suis coincé à cause de ça.

Merci
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
14 sept. 2009 à 14:07
bonjour,

peut -être déclarer action_type en public en haut de page
"public acction-type



0