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 un combobox à 2 colonnes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Par défaut Remplir un combobox à 2 colonnes
    Bonjour.
    Je cherche à remplir un combobox à 2 colonnes mais je n'y parviens pas.
    J'ai essayé de faire avec un rowsource mais j'ai un message d'erreur comme quoi le rowsource n'est pas gérer par l'objet. Et de même avec la propriété column.
    J'ai de plus essayé avec un Range("A1:B10") mais rien à faire, aussi une erreur.
    Je suis donc à court d'idée.
    Si quelqu'un en a une SVP ???
    Merci d'avance

  2. #2
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 487
    Par défaut
    yo

    c'est très très compliqué... non, je plaisante, c'est assez simple en fait :

    en utilisant la propriété .list, tu peux indexer tes éléments, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For index = 0 to 3
     
    With MaCombo
      .AddItem
      .List(index,0)= "Ligne " & index & "colonne 0"
      .List(index,1)= "Ligne " & index & "colonne 1"
      .List(index,2)= "Ligne " & index & "colonne 2"
    End With
     
    Next
    non ?

  3. #3
    Membre éprouvé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Par défaut
    ok, merci, je teste dans la soirée et te donne la réponse.

  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
    Bonsoir tlm,

    Je me permet une petite précision, voir même deux c'est soirée promo.

    Si tu veux 2 colonnes dans ton Combo, la première chose à faire est de modifier la propriété ColumnCount et de la fixer à 2.

    Ensuite le remplissage du Combo dépend si il est inséré sur un UserForm ou si il est directement inséré sur la feuille via le menu Boîte à outils Contrôle pour lequel la propriété RowSource n'existe pas :
    1. Combo sur UserForm --> UserForm1.ComboBox.RowSource = "A1:B10"
    2. Combo sur feuille --> ActiveSheet.ComboBox1.ListFillRange = "A1:B10"

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    bonsoir

    je viens de faire un petit teste et il en ressort que si le nom de la feuille n'exite pas aucun défaut n'est créé et dans ce cas la liste est effectivement vide.

    donc ma question est la suivante : est-ce que tu as réellement une feuille qui s'appelle Feuil11 dans ton classeur?

  6. #6
    Membre éprouvé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Par défaut
    oui, j'ai revérifié plusieurs fois et la complétition automatique du code me le confirme aussi

  7. #7
    Membre éprouvé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Par défaut
    Citation Envoyé par laloune Voir le message
    yo

    c'est très très compliqué... non, je plaisante, c'est assez simple en fait :

    en utilisant la propriété .list, tu peux indexer tes éléments, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For index = 0 to 3
     
    With MaCombo
      .AddItem
      .List(index,0)= "Ligne " & index & "colonne 0"
      .List(index,1)= "Ligne " & index & "colonne 1"
      .List(index,2)= "Ligne " & index & "colonne 2"
    End With
     
    Next
    non ?
    en fait, et je viens de retester au cas où, mais list ne passer pas non plus.

    Citation Envoyé par fring Voir le message
    Bonsoir tlm,

    Je me permet une petite précision, voir même deux c'est soirée promo.

    Si tu veux 2 colonnes dans ton Combo, la première chose à faire est de modifier la propriété ColumnCount et de la fixer à 2.

    Ensuite le remplissage du Combo dépend si il est inséré sur un UserForm ou si il est directement inséré sur la feuille via le menu Boîte à outils Contrôle pour lequel la propriété RowSource n'existe pas :
    1. Combo sur UserForm --> UserForm1.ComboBox.RowSource = "A1:B10"
    2. Combo sur feuille --> ActiveSheet.ComboBox1.ListFillRange = "A1:B10"
    OK, merci de ta réponse.
    Pour le columnCount, c'est ok. J'ai aussi régler le BoundColumn et TextColumn.
    Par contrre, bien que je n'ai pas d'erreur, la combo ne se rempli pas.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            Feuil4.ComboBox_departement1.ListFillRange = "Feuil11!A1:B" & i 'Feuil11.Cells(i, 1)
    Il s'agit en fait d'aller chercher sur une autre feuille et c'est cela qui pose problème car j'ai également fait le test sur la même feuille et là ca marche.
    Savez-vous pourquoi ?
    Merci

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

Discussions similaires

  1. Remplir une combobox multi colonnes
    Par Beef76 dans le forum VB.NET
    Réponses: 2
    Dernier message: 01/04/2011, 19h26
  2. [XL-2003] Remplir une combobox avec le contenu d'une colonne d'un autre fichier Excel
    Par funkykiwi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/02/2011, 15h50
  3. [XL-2007] remplir Le ComboBox avec la colonne A
    Par chikitin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/06/2010, 19h51
  4. Réponses: 2
    Dernier message: 07/07/2008, 18h24
  5. Remplir une ComboBox avec DEUX colonnes (ou plus ^_^)
    Par DashRendar dans le forum VB.NET
    Réponses: 3
    Dernier message: 07/02/2008, 08h54

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