Bonjour,
je désire faire une liste déroulante dans un userform dans laquelle tous les noms de plages nommées du classeur y seront stockés.
Est-ce que quelqu'un pourrait m'indiquer comment m'y prendre?
Merci d'avance.
Bonjour,
je désire faire une liste déroulante dans un userform dans laquelle tous les noms de plages nommées du classeur y seront stockés.
Est-ce que quelqu'un pourrait m'indiquer comment m'y prendre?
Merci d'avance.
bonsoir,
les noms des zones nommées se trouvent dans une collection appelée Names.
pour remplir une combobox avec tous les noms, il suffit de faire une boucle sur la collection Names, et ajouter chaque nom à la combobox, grâce à sa méthode ADDITEM.
le code serait le suivant si c'est dans un userform que vous désirez afficher la liste
si la combobox se trouve sur une feuille de calcul, vous utiliserez de préférence l'événement Activate de la feuille et n'oublierez pas de vider la liste déroulante avant de la remplir à nouveau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub UserForm_Initialize() Dim i As Integer ' faire une boucle à l'aide d'un compteur qui va de 1 au nombre de noms dans le classeur For i = 1 To ThisWorkbook.Names.Count ' ajouter à la liste de choix de la combobox le nom du ième Nom ComboBox1.AddItem ThisWorkbook.Names(i).Name Next End Sub
Kedar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Worksheet_Activate() Dim i As Integer ' vider la combobox avant de la remplir de nouveau ComboBox1.Clear ' faire une boucle à l'aide d'un compteur qui va de 1 au nombre de noms dans le classeur For i = 1 To ThisWorkbook.Names.Count ' ajouter à la liste de choix de la combobox le nom du ième Nom ComboBox1.AddItem ThisWorkbook.Names(i).Name Next End Sub
Merci Kedar C'est exactement ce que je cherchais.
Cependant la macro me donne non seulement la liste des plages nommées de mon gestionnaire de noms, mais il y a apparemment aussi des listes crées par Excel. Est-ce qu'il est possible de faire la différence et d'afficher que mes listes?
merci d'avance.
Bonsoir,
le plus simple serait de commencer les noms qui doivent entrer dans vos listes par un code spécifique, par exemple lst.
il vous suffira de tester si les trois premiers caractères du nom sont lst pour l'inclure dans votre liste
Kedar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Worksheet_Activate() Dim i As Integer Dim nm as Name ' vider la combobox avant de la remplir de nouveau ComboBox1.Clear ' faire une boucle à l'aide d'un compteur qui va de 1 au nombre de noms dans le classeur For i = 1 To ThisWorkbook.Names.Count ' ajouter à la liste de choix de la combobox le nom du ième Nom Set nm = ThisWorkbook.Names(i) If Left(nm.Name,3)="lst" Then ComboBox1.AddItem nm.Name Next End Sub
Merci ça marche super !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager