Bonjour à tous,

Je voudrais faire une macro VBA dans laquelle on crée sur un grand nombre de lignes, toujours la même chose:
- dans la colonne F, une liste simple (un menu déroulant dont les valeurs sont dans une plage nommée)
- dans la colonne G, une liste en cascade ou indirecte de la première (la liste dépend du choix dans la case F de la même ligne).

Pour créer la liste simple, je ne rencontre pas de pb. J'utilise ce genre de code et ça marche :

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
Set MALISTE1= Sheets("Listes").Range("A1:A8")
Set MALISTE2= Sheets("Listes").Range("B1:B2")
Set MALISTE3= Sheets("Listes").Range("C1")
Set PRINCIPALE= Sheets("Listes").Range("E1:E3")
...
For ligne = 2 To LastRow
...
    Cells(ligne, 6).Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=PRINCIPALE"
        .IgnoreBlank = True
        .InCellDropdown = True
        .ShowInput = True
        .ShowError = True
    End With
...
Next
Mais impossible de faire fonctionner un code pour créer en plus les listes indirectes. Je n'arrive pas à traduire dans VBA, dans ma boucle, ce genre de formule (qui marche bien sous Excel) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
=SI($F2=""; $AA$50;INDIRECT($F2)).


Merci de votre aide