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 :

indexer plusieurs 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
    Août 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Par défaut indexer plusieurs combobox
    Bonjour,
    Sur ma feuille d'excel j'ai incrusté 10 combobox
    Je veux les remplir des données similaires disons "a" et "b"
    La methode fastidieuse etant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    combobox1.additem "a"
    combobox1.additem "b"
    ...
    combobox10.additem "a"
    combobox10.additem "b"
    Comment indexer un combobx pour qu'avec une boucle je les fasse simplement,exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for x=1 to 10
    combobox(x).additem "a"
    combobox(x).additem "b"
    next
    ...mais ce genre d'indexation n'est pas accepté
    PS : j'utilise office 2003

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 99
    Par défaut
    Bonjour paulselvan le forum
    bon alors en partant de ton idée on peut mais c'est pas la bonne méthode mais je te la donne tout de même

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for x=1 to 10
    controls("combobox"& x).additem "a"
    controls("combobox" & x).additem "b"
    next
    maintenant si tu as une liste plus longue, admettons en colonné A de A2 à A et fin de colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sub remplir()
    dim i&,fin&,aa
    aa=feuil1.range("A2:A"& feuil1.range("A"&rows.count).end(xlup).row)
    for x= 1 to 10
    controls("Combobox"& x).list=aa
    next x
    end sub
    voilà là tu charges la liste en une seule fois
    a+
    papou

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Par défaut @ Paritec
    @Paritec
    J'ai un bug dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Controls("combobox" & x).AddItem "a"
    peut etre parceque j'utilise excel d'office 2003 et qu'il ne reconnait pas Controls?

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Première solution (rigide) si on est certain du nombre de Combos et de leurs noms :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test1()
    Dim x As Integer
     
    For x = 1 To 10
        With Sheets("MaFeuille").OLEObjects("ComboBox" & x).Object
            .AddItem "A"
            .AddItem "B"
        End With
    Next
     
    End Sub
    Seconde solution (plus souple) qui ne tient pas compte du nombre et des noms des Combos :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test2()
    Dim Obj As OLEObject
     
    For Each Obj In Sheets("MaFeuille").OLEObjects
        If TypeOf Obj.Object Is MSForms.ComboBox Then
            Obj.Object.AddItem "C"
            Obj.Object.AddItem "D"
        End If
    Next Obj
     
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Par défaut Merci à tous

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

Discussions similaires

  1. Initialisation de plusieurs combobox
    Par Selune6666 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 18/01/2008, 12h39
  2. Remplir plusieurs combobox
    Par SoGood dans le forum VB.NET
    Réponses: 12
    Dernier message: 08/07/2007, 19h46
  3. Récupérer valeurs de plusieurs combobox
    Par NicoO_O dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 04/05/2007, 15h52
  4. Comment Indexer Un Combobox
    Par programeur dans le forum Delphi
    Réponses: 3
    Dernier message: 11/12/2006, 10h25
  5. Réponses: 5
    Dernier message: 29/11/2006, 21h10

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