IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment intégrer tous les noms de plages nommées d'un classeur dans une combo box? [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur process
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur process
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Comment intégrer tous les noms de plages nommées d'un classeur dans une combo box?
    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.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Points : 30
    Points
    30
    Par défaut plages nommées et combobox
    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

    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
    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
    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
    Kedar

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur process
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur process
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    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.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Points : 30
    Points
    30
    Par défaut filtrer les noms des zones nommées
    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

    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
    Kedar

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur process
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur process
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci ça marche super !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Ignorer les cellules vides dans une combo-box
    Par Esak59 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/02/2011, 11h54
  2. Réponses: 14
    Dernier message: 01/07/2009, 13h49
  3. Comment Afficher tous les noms ?
    Par souheil59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/11/2008, 18h28
  4. [XSLT] comment afficher tous les noms de balises
    Par stanilas dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/11/2005, 22h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo