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 :

Création d'une methode générique de remplissage d'une list box


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Installateur metteur en service colorimetre
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Installateur metteur en service colorimetre
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Par défaut Création d'une methode générique de remplissage d'une list box
    Bonjour

    je souhaite implanter, dans un fichier excel, une methode VBA permettant de remplir une list box contenue dans le fichier.

    le fichier comporte un multipage et sur 2 des 4 pages crées il y a 1 list box.

    j'appelle une methode avec en parametre le nom de la list box.
    mon problème est que cela ne marche pas

    mon code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub FillListe(Lbox As String)
     
        Lbox.Clear
        Lbox.ColumnCount = 12
     
        Lbox.AddItem a
        Lbox.List(0, 1) = b
     
       ......
    end sub
    j'appelle par exemple Filllist (Main.LbCptCourant) ou lbCptcourant est une listbox présente sur le multipage Main'

    mais le code bug. j'ai l'erreur : membre de méthode ou de données introuvables

    pouvez vous m'aider s'il vous plait?

  2. #2
    Membre très actif
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Par défaut
    Alors en fait dans ton code, plusieurs choses ne vont pas.

    Tout d'abord, tes combobox sont-ils dans un userform ou sur une feuille?
    Ensuite, ce n'est pas le nom de la listbox qu'il faut récupérer, mais la listbox elle-même.

    Si tu travailles avec un userform :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sub FillListe(Lbox As UserForm)
    Ensuite, qu'Est-ce que sont a et b ?

  3. #3
    Membre du Club
    Homme Profil pro
    Installateur metteur en service colorimetre
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Installateur metteur en service colorimetre
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Par défaut
    Bonjour,

    meric pour les reponses.

    alors en fait j'ai une listbox qui s'appelle LbCptCourant qui se trouve sur un multipage qui s'appelle CptCourant qui est lui meme place sur un autre multipage applé Main. j'ai d'autres listbox qui se trouvent sur d'autre multipage

    j'ai bien essayé dans un premier temps d'appeler la methode FillListe (Lbox as listbox), mais cela n'a pas marché.Lbos ne doit pas etre un userform mais la listbox que je veux remplir.

    mon but est de faire une methode generique qui pourrait remplir la listbox de mon choix en la passant en parametre

    a et b sont pour faire simple des données reucpérées sur une même ligne d'une feuille excel (par ex a serait une date, et b serait un type d'operation)

    j'espère avoir été plus clair.

    merci d'avance

  4. #4
    Membre très actif
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Par défaut
    Il ne faut pas passer la listbox en paramètre mais l'userform (petite erreur de ma part)

    Ta fonction doit être appelée comme cela :
    Ensuite ta fonction dois comment par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub FillListe(usf As UserForm)
    et pour remplir ta listbox il faut faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    usf.LbCptCourant.clear
    usf.LbCptCourant.ColumnCount = 12
    et ainsi de suite

    Ensuite, jamais ton code ne fonctionnera si ton a et ton b ne correspondent à rien. Il faut que tu définisses clairement et précisément s'il de variables, de quel type et ce qu'elles contiennent.
    Enfin, pour l'automatisation sur l'ensemble de tes onglets, il existe plusieurs moyen. Une boucle est toujours nécessaire, mais pour cela il faut tes listbox aient le même schéma (même nom avec un chiffre différent à la fin ou même caption avec chiffre différent à la fin par exemple)

  5. #5
    Membre du Club
    Homme Profil pro
    Installateur metteur en service colorimetre
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Installateur metteur en service colorimetre
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Par défaut
    Ah Ok, moi j'étais persuadé qu'on pouvait passer la listbox en parametre.

    j'essaierai ce soir ou demain matin.

    concernant a et b, ca correspond a quelque chose, j'avais fait des remplissage de listbox, mais jamais avec une procedure generique comme celle la .

    j'espere que ca va marcher.


    en tout cas merci pour le coup de main. ca va m'avancer grandement

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    quelle étrange idée de passer le userform en paramètre d'une procédure qui remplira un ListBox ?

    Sachant qu'il est en plus sur un multipage, il me semble que si on part du Userform plutôt que du ListBox, on doit gérer aussi la page où est située la listbox ?

    voici un exemple tiré d'un de mes fichiers ... bien sûr ça ne répondra pas à la demande exacte, mais ça présente la possibilité

    La procédure dans un module standard, elle permet de charger une liste issue d'une plage Excel.
    Son contexte d'utilisation : des utilisateurs valident des "fiches" (ou les suppriment / les modifients) et à chaque validation, la listbox recharge l'ensemble des fiches saisies

    Voici le remplissage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ChargeListBoxSaisiesTest(LaListe As MSForms.ListBox)
        With FEUILLE_ECRITURE.Cells(1, 1)
            If .Value <> "" Then
                LaListe.List = .CurrentRegion.Offset(0, 2).Resize(.CurrentRegion.Rows.Count, LaListe.ColumnCount).Value
            End If
        End With
    End Sub

    Son appel depuis un Userform

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call ChargeListBoxSaisiesTest(Me.ListBox_SAISIES)

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/08/2010, 14h35
  2. Réponses: 3
    Dernier message: 06/10/2009, 14h37
  3. Réponses: 1
    Dernier message: 26/02/2009, 17h13
  4. executer une methode des l'ouverture d'une page
    Par solarien dans le forum JSF
    Réponses: 15
    Dernier message: 16/10/2008, 13h25
  5. Réponses: 7
    Dernier message: 16/03/2007, 20h28

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