Bonjour ,
Je souhaiterais créer une liste déroulante dynamique en mode indirect > 200 membres . J'ai d'abord essayé de créer une liste de validation de données de la manière suivante :
Je suis arrivé à la conclusion que cette méthode ne fonctionne que pour les listes(ici SignalsTable) contenants peu de choix (dans mon cas <~20) . Je tiens à préciser que j'ai effectué pas mal de vérification quant au format des membres de ma liste( pas d'espaces , pas de doublons, pas trop long <~20caracteres) .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Dim SignalsTable() As String ... ... For Each r In .Columns("M").Cells If (r.Row > 2) Then If IsEmpty(r.Offset(0, -12).Value) Then Exit For With r.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(SignalsTable, ",") .InputMessage = "Must be in the joined list" .IgnoreBlank = True .InCellDropdown = True .ShowInput = True .ShowError = True End With End If ... Next
La solution que j'envisage est de me servir de la fonction indirect() qui aura comme argument un label (un objet?) qui pointe sur la plage de données qui constituras ma liste mais malheureusement je ne trouve pas cette fameuse fonction indirect et je ne sais pas non plus comment l'on peux créer un label qui se réfère a la plage que je souhaite lui assigner .
Je ne souhaite pas utiliser de combo box dans mon cas de figure .
Merci d'avance pour l'aide
Leiam
Partager