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 :

Remplir / Renseigner ListBox ou comboBox ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 14
    Par défaut Remplir / Renseigner ListBox ou comboBox ?
    Bonjour,

    A mon tour j'aurais besoin d'aide pour le meme sujet.

    J'ai envie de créer une liste déroulante. Quelle partie remplire
    Private Sub Choix_Click() ou UserForm_Initialize() ???
    Je n'arrive pas à ajouter d'élèments à ma liste?

    Est ce correct?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_Intilialize()
    MsgBox ("Veuillez faire votre choix")
    Dim listBox1()
    listBox1 = Array("Afficher les stat", "Graphique stat par jour", "Graphique période glissante")
    Meric pour votre aide !!

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    La méthode à utiliser pour remplir une Liste ou un Combo se passe dans l'évènement Initialise du UserForm.

    Si travailler avec des Array te pose problème, tu peux utiliser une méthode plus simple où l'on ajoute les éléments les uns à la suite des autres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub UserForm_Initialize()
    Me.ComboBox1.AddItem "Item 01"
    Me.ComboBox1.AddItem "Item 02"
    End Sub
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Employer un MsgBox implique une réponse et de ce fait... bloque la suite de l'initialisation.
    Pour l'initialisation de la listbox tu peu faire...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Intilialize()
    Dim i as integer
    Dim Contenu() 'Ne pas employer des noms de contrôles comme variable
    Contenu= Array("Afficher les stat", "Graphique stat par jour", "Graphique période glissante")
     
     for i=0 to ubound(Contenu)
        ListBox1.AddItem Contenu(i)
    Next i
    Et au dessus de la listbox mettre un Label avec ("Veuillez faire votre choix")
    que tu supprime éventuellement après la sélection dans la listbox.
    A+

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    si c'est pour déclarer un tableau, il est préférable de le typer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Contenu() As String
    Pour ne pas faire un tableau de Variant.

    PS : je n'ai pas repris le code fourni parce qu'il est issu d'un autre message.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par LeForestier Voir le message
    Bonjour,
    Employer un MsgBox implique une réponse et de ce fait... bloque la suite de l'initialisation.
    Pour l'initialisation de la listbox tu peu faire...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Intilialize()
    Dim i as integer
    Dim Contenu() 'Ne pas employer des noms de contrôles comme variable
    Contenu= Array("Afficher les stat", "Graphique stat par jour", "Graphique période glissante")
     
     for i=0 to ubound(Contenu)
        ListBox1.AddItem Contenu(i)
    Next i
    Et au dessus de la listbox mettre un Label avec ("Veuillez faire votre choix")
    que tu supprime éventuellement après la sélection dans la listbox.
    A+
    Voui ! Ou bien tu peux aussi faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserForm_Initialize()
    Dim i As Integer 'Ne pas employer des noms de contrôles comme variable
    Dim Contenu As Variant, Tablo() As Variant
        Contenu = Array("Afficher les stat", "Graphique stat par jour", "Graphique période glissante")
        Tablo = Array(Contenu, 0)
        ListBox1.List() = Tablo(0)
    End Sub
    Juste pour embêter l'homme des bois !
    (Salut Le Garde champêtre, tu n'as pas croisé jean-pierre durant sa cavale ?)
    Edit
    (Salut aussi, l'homme heureux )

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Comme je ne constate pas de réaction, je vais simplifier pour vous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Initialize()
    Dim Contenu As Variant
        Contenu = Array(Array("Afficher les stat", "Graphique stat par jour", "Graphique période glissante"), 0)
        ListBox1.List() = Contenu(0)
    End Sub
    Si le silence persite, attention, j'explique

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour Ousk,
    Beh oui, c'est le plus compacte...
    Et j'y ai pas pensé

    Bonjour également à l'homme heureux, petite remarque, le Me. .... n'est pas nécessaire quand le code se trouve dans le module de l'UF.
    A+

Discussions similaires

  1. [Toutes versions] une autre facon de remplir une listbox ou combobox sans doublons
    Par patricktoulon dans le forum Contribuez
    Réponses: 2
    Dernier message: 05/11/2012, 13h09
  2. Réponses: 5
    Dernier message: 02/05/2011, 18h05
  3. Réponses: 6
    Dernier message: 22/05/2006, 16h16
  4. Réponses: 2
    Dernier message: 11/05/2006, 22h21
  5. Réponses: 3
    Dernier message: 19/01/2005, 15h50

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