VBA Introduire une liste déroulante selon une variable
bb_ronaldo
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je voudrais utiliser une macro pour faire apparaître une liste déroulante en B1. Je souhaiterais que la liste qui s'affiche en B1 varie selon la valeur de A1.
Exemple
Si A1: "nom1"
Alors en B1 apparait la liste déroulante nommée "liste1" et qui correspond à la plage B2:B8 d'une autre feuille (disons Feuillle2)
Si A1:"nom2"
Alors en B1 apparait la liste déroulante nommée "liste2" et qui correspond à la plage C2:C9 de Feuille2
etc.
A1 peut prendre des dizaines de valeurs, j'ai donc aussi des dizaines de listes sur Feuille2
J'ai trouvé le code suivant pour insérer une liste:
<Cells(1,2).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=liste1"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Sélection"
.ErrorTitle = ""
End With>
Mais je n'arrive aps à remplacer "liste1" par une variable qui ferait référence à A1. Du coup, à moins de faire autant de IF..THEN que je n'ai de possibilité de valeurs en A1, ça ne m'aide pas beaucoup.
Quelqu'un aurait-il une solution?
Merci
Je voudrais utiliser une macro pour faire apparaître une liste déroulante en B1. Je souhaiterais que la liste qui s'affiche en B1 varie selon la valeur de A1.
Exemple
Si A1: "nom1"
Alors en B1 apparait la liste déroulante nommée "liste1" et qui correspond à la plage B2:B8 d'une autre feuille (disons Feuillle2)
Si A1:"nom2"
Alors en B1 apparait la liste déroulante nommée "liste2" et qui correspond à la plage C2:C9 de Feuille2
etc.
A1 peut prendre des dizaines de valeurs, j'ai donc aussi des dizaines de listes sur Feuille2
J'ai trouvé le code suivant pour insérer une liste:
<Cells(1,2).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=liste1"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Sélection"
.ErrorTitle = ""
End With>
Mais je n'arrive aps à remplacer "liste1" par une variable qui ferait référence à A1. Du coup, à moins de faire autant de IF..THEN que je n'ai de possibilité de valeurs en A1, ça ne m'aide pas beaucoup.
Quelqu'un aurait-il une solution?
Merci
A voir également:
- VBA Introduire une liste déroulante selon une variable
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Vba range avec variable ✓ - Forum VB / VBA
- Supprimer liste déroulante excel - Forum Excel