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 :
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
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) .

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