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 Listbox au démarrage


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Par défaut Remplir Listbox au démarrage
    Bonjour,
    Je suis débutant en VBA.
    J'aimerais remplir ma Listbox au démarrage de mon document. J'ai essayé de mettre UserForm_Initialize dans This Workbook mais il me dit que la Sub en question n'est pas déclarée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Workbook_open()
    UserForm_Initialize
    End Sub
    Voici ce qu'il y a dans Feuil1 :

    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
    20
    21
    22
    23
    24
    25
    26
    Private Sub UserForm_Initialize()
        ListBox1.Clear
        ListBox1.AddItem "A"
        ListBox1.AddItem "B"
    End Sub
     
    Private Sub CommandButton1_Click()
        UserForm_Initialize
    End Sub
     
    Private Sub UserForm_suite()
        If ListBox1.List(ListBox1.ListIndex) = "A" Then
            ListBox2.AddItem "1"
            ListBox2.AddItem "2"
            ListBox2.AddItem "3"
        End If
        If ListBox1.List(ListBox1.ListIndex) = "B" Then
            ListBox2.AddItem "4"
            ListBox2.AddItem "5"
        End If
    End Sub
     
    Private Sub ListBox1_Click()
        ListBox2.Clear
        UserForm_suite
    End Sub
    Je ne peux pas créer de module avec les listbox sans que j'ai une erreur sur un objet manquant (listbox1 par exemple, même si je la déclare As Listbox). Je pense avoir compris que pour lancer une macro au démarrage il faut que ce soit dans un module (c'est la conclusion que j'en tire).
    Avez vous une idée de comment remplir ma listbox à l'ouverture du document ?
    Merci d'avance

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Ta listeBox sera rempli lorsque la userform sera chargée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub Workbook_open()
    UserForm.Show
    End Sub

  3. #3
    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
    Place ton code dans Userform_activate()
    J'ai remarqué que, sur Excel 2003, les listes n'étaient pas initialisées si on les remplissais depuis Userform_Initialize. Un hasard ? Je n'en sais rien mais dans Activate, c'est ok.
    Tu nous dis si ça règle ton pb.
    A+

    Edit
    Et suis le conseil de JFontaine sinon, ça marche pas. Ton userform doit être activé pour remplir ta liste
    Par précaution, je le ferais même en deux temps pour laisser à ta liste le temps de se remplir (?!?...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Load Userform1
    Userform1.show

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    J'ai Excel 2003, et la liste se charge bien dans le UserForm_Initialize
    Peut être que le problème a été corrigé dans un correctif.

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Par défaut
    ca ne marche pas... mais je crois savoir pourquoi. J'ai oublié de vous mentionner qqch
    J'ai pas créé de userform. Je suis passé par la barre d'outils de visual basic>boîte à outils Contrôles>zone de liste
    est-ce que ca change qqch ???
    J'ai essayé toutes vos solutions mais aucune ne fonctionne, erreur 424, objet requis...
    Il ne faut peut-être pas que je mette sans dans userform_activate du coup (ou Initialize)... c'est un nom reservé ?

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Dans ce cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Workbook_Open()
     
    With Sheets("feuil1")
     
        .ListBox1.AddItem "A"
        .ListBox1.AddItem "B"
     
    End With
     
     
    End Sub

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

Discussions similaires

  1. comment remplir listbox
    Par sihame23 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/07/2008, 15h42
  2. remplir listbox bdd
    Par lesafir dans le forum ASP.NET
    Réponses: 8
    Dernier message: 21/06/2007, 17h23
  3. Remplir listbox sur base d'une autre listbox
    Par jujujulien dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/05/2007, 08h46
  4. [C# Threads] Remplir listbox
    Par PoZZyX dans le forum Windows Forms
    Réponses: 9
    Dernier message: 09/04/2007, 16h00
  5. pb remplir Listbox dynamique
    Par maniolo dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/08/2006, 18h50

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