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 :

affecter la même liste d'élément à plusieurs Listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    Salut.
    J'ai une liste d'éléments que je voudrais affecter à plusieurs combobox (que j'ai nommé LWB1, LBW2, LBW3,... LBW20). Comme c'est fastidieux de remplir les Listbox une à une, j'aurais voulu faire une Boucle for..next, qui attribuerait la même liste d'élément à chaque Listbox.

    J'ai pour l'instant ce code, mais le programme ne reconnait pas LBi. Je pense que c'est un problème de syntaxe. Y a-t'il une méthode spécifique?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Affichage()
        Dim i As Integer
        Const COLCYC = 20
        For i = 1 To COLCYC
            Feuil2.LBWi.AddItem = TabWag(j, k)
            i = i + 1
        Next
    End Sub
    Je viens d'essayer ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim i As Integer
        Dim temp As String
        Const COLCYC = 20
        For i = 1 To COLCYC
                    temp = "LBW" & i
                    temp.AddItem = "TabWag"
            i = i + 1
        Next
    Mais ça ne marche pas

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 81
    Par défaut
    Salut,
    Tu ne peux pas faire appel à un nom de variable par concaténation:
    Ex:
    Ta variable s'appelle Variable1 tu peux pas faire: Variable & 1 = quelque chose.
    Je n'ai pas de solution à te proposer mais en tout cas tu cherches pas dans la bonne voie.
    Le contournement utilisé pour ce genre de problème est de mettre tous tes éléments dans une liste et de boucler sur cette liste.
    Bon courage

  3. #3
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    ok, je vais essayer avec une liste, j'ai mis des points d'arrêt et je vois que mon temp correspond à un string.

  4. #4
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut Même Problème
    Je me retrouve à nouveau avec ce problème. Sur une autre feuille j'ai aussi une série de 20 Listbox qui doivent contenir la même chose. Mais je trouve pas de méthodes comme une boucle pour toute les remplir facilement

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,
    J'ai une liste d'éléments que je voudrais affecter à plusieurs combobox (que j'ai nommé LWB1, LBW2, LBW3,... LBW20). Comme c'est fastidieux de remplir les Listbox une à une, j'aurais voulu faire une Boucle for..next, qui attribuerait la même liste d'élément à chaque Listbox.
    euh tu parles ce combo ou de list ? ici, c'est perturbant pour les lecteurs, mais dans un code ça ne pardonne pas...


    tu peux boucler sur la collection voulue... du genre (cas d'un userform et sur une feuille)
    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
    Sub Alimindexée()
    Dim ctlControl As Control
     
    For Each ctlControl In usfToto.Controls
        If TypeOf ctlControl Is MSForms.ComboBox Then
            If Left(ctlControl.Name, 3) = "LBW" Then
               MsgBox ctlControl.Name ' Alimentation du combo
            End If
        End If
    Next ctlControl
    End Sub
     
     
     
    Sub Alimindexée2()
    Dim oleObjet As OLEObject
     
    For Each oleObjet In ActiveSheet.OLEObjects
       If TypeOf oleObjet.Object Is MSForms.ListBox Then
        If Left(oleObjet.Name, 3) = "LBW" Then
            MsgBox oleObjet.Name 'Alimentation de la liste
         End If
       End If
    Next oleObjet
    End Sub
    On considère qu'il n'y a que les listbox voulues qui commencent par LBW, sinon à adapter...


    Sinon en faisant l'effort de chercher, ce que j'ai fait à ta place...., une possibilité très simple dans un fil dont le titre correspondait très explicitement à ta question... et ton approche...

    http://www.developpez.net/forums/d74...ble-concatene/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Alimindexée3()
    Dim i
     
    For i = 1 To 3
        ActiveSheet.OLEObjects("LBW" & i).Select 'Alimentation de la listbox
    Next i
    End Sub
    cordialement,

    Didier

  6. #6
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    Ah oui je me suis gourré c'est des combobox. Par contre je connaissais pas le terme concatener, donc j'ai pas chercher sur le forum

Discussions similaires

  1. Réponses: 12
    Dernier message: 10/08/2007, 15h45
  2. Réponses: 1
    Dernier message: 04/05/2007, 13h25
  3. [MySQL] Liste d'éléments même si il manque des liens
    Par samyboy dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/07/2006, 15h40
  4. Affecter la même valeur à plusieurs variables
    Par K20 dans le forum Langage
    Réponses: 7
    Dernier message: 03/01/2006, 23h54

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