Générer une liste déroulante avec une macro à partir d'une source Variant

  • Initiateur de la discussion Initiateur de la discussion laurano
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

laurano

XLDnaute Junior
Bonjour,

A l'aide d'une macro, j'identifie une liste d'éléments que j'ai intégré à un objet de type Variant. A partir de là, je veux générer pour certaines cellules une liste déroulante basée sur le contenu de cet objet et je ne trouve pas le code. Je pourrais bien sûr écrire la liste quelque part sur une feuille et faire référence à cette feuille mais c'est précisément ce que je voudrais éviter.

Merci de votre aide
 
Re : Générer une liste déroulante avec une macro à partir d'une source Variant

ben, je ne suis pas sûr que le fichier serve à quelque chose mais pour petre un peu pplus précis, mon problème est que je dois faire une liste déroulante d'enseignes, liste qui peut varier selon les utilisateurs. J'ai identifié cette liste que j'ai donc intégré dans un objet variant que j'ai appelé LISTEENSEIGNES, puis j'ai voulu créé une liste déroulante pour certaines cellules et j'ai tenté le code suivant :
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:= LISTEENSEIGNES
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Et ça il n'en veut pas

Pour avancer je me suis résolu à inscrire cette liste dans une plage de cellules que j'ai mais dans une feuilles nommée DONNEES. Comme cette plage aura une taille variable fonction du nombre d'enseignes (nbenseigne), je dois la nommer en fonction de ce paramètre.
J'ai donc codé :
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Sheets("DONNEES").Range(Cells(1, 1), Cells(nbenseigne, 1)).Value
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Et ça il n'en veut pas non plus...

Bref, je patauge
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour