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 :

Probleme de comboBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Billets dans le blog
    1
    Par défaut Probleme de comboBox
    Bonjour à tous
    Voici mon souci, dans un programme que j'ai créé, il y a des Userform qui contiennent des comboBox.
    La rowsource de ma combobox est défini sur 2 colonnes de 15lignes, mais elle n'affche que la première qui est une colonne de numéro mais pas la deuxième qui est une colonne de texte en rapport avec les numéros de la première colonne.
    En fait je voudrais savoir comment dire à cette combobox d'afficher la 2ème colonne (du texte) pour le choix de l'utilisateur et en Value récupéré le numéro de ce texte qui est juste sur la case d'a côté sur la même ligne...
    J'espère que je me suis bien fait comprendre...

    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Citation Envoyé par alsimbad Voir le message
    tu ne dois pas utiliser une combo box mais une listbox, et tu dois configurer sa propriété columncount sur 2
    Pas d'accord. La propriété ColumnCount fonctionne aussi pour les ComboBox.

  3. #3
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut


    Si l'éditeur le baptise TextBox1 (ou autre numéro), c'est que c'est un TextBox et pas un ComboBox...

    Un ComboBox, c'est comme une liste, mais avec une zone éditable, et qui peut être utilisé dans un de ces deux formats:
    • liste déroulante (DropDownList)
    • liste déroulante modifiable (DropDownCombo)


    T'as surement pas cliqué sur le bon outil!

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Billets dans le blog
    1
    Par défaut
    cela veut donc dire que je dois changer et prendre une liste non modifiable pour pouvoir effectuer ce que je veux??

    Merci

  5. #5
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    bonjour,


    Il te suffit d'utiliser la propriété listIndex de ton contrôle :

    par exemple avec ta liste en A1:B16

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub UserForm_Activate()
     ComboBox1.RowSource = "feuil2!B1:B16"
    End Sub
    Private Sub ComboBox1_Change()
      MsgBox ThisWorkbook.Sheets("Feuil2").Range("A1:A16").Cells(ComboBox1.ListIndex + 1)
    End Sub

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 572
    Par défaut
    et surtout vérifier la propriété columncount de ta combobox. c'est elle qui lui dit combien de colonne elle doit afficher

  7. #7
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Citation Envoyé par alsimbad Voir le message
    et surtout vérifier la propriété columncount de ta combobox. c'est elle qui lui dit combien de colonne elle doit afficher

    J'ai pas compris cela moi .. pour moi phal2ip ne ve afficher qu'une seule colonne !

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 572
    Par défaut
    Citation Envoyé par phal2zip
    En fait je voudrais savoir comment dire à cette combobox d'afficher la 2ème colonne

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    En effet c'est bien ce qu'il veut : 2 colonnes et 15 lignes soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Activate()
     ComboBox1.RowSource = "feuil2!A1:B15"
    End Sub
    et dans les propriétés de l'objet indiquer la valeur 2 pour ColumnCount.

  10. #10
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Billets dans le blog
    1
    Par défaut
    oui en fait j'ai 2 possibilités soit j'affiche 2 colonnes soit 1 mais celle du texte par contre en value je voudrais récupéré la value de la colonne de chiffre qui dans mon cas est la 1ère puisque la deuxième est celel du texte.

    Merci encore à tous

  11. #11
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Citation Envoyé par phal2ip Voir le message
    oui en fait j'ai 2 possibilités soit j'affiche 2 colonnes soit 1 mais celle du texte par contre en value je voudrais récupéré la value de la colonne de chiffre qui dans mon cas est la 1ère puisque la deuxième est celel du texte.

    Merci encore à tous
    c'est donc ?

  12. #12
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Billets dans le blog
    1
    Par défaut
    Pas encore tout à fait puisque puisque en mettant les 2 colonnes je ne sais tjs pas comment récupéré uniquement la valeur de la première en Value...

    Merci

  13. #13
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 572
    Par défaut
    Citation Envoyé par F1
    Quand l'utilisateur choisit une ligne dans un contrôle ListBox ou ComboBox à plusieurs colonnes, la propriété BoundColumn identifie quel élément de cette ligne est à stocker comme la valeur du contrôle. Par exemple, si chaque ligne contient huit éléments et BoundColumn est 3, le système stocke les informations de la troisième colonne de la ligne actuellement sélectionnée en tant que valeur de l'objet.
    quand tu cherche a quoi crespondes les propriétés a ta disposition sur un objet, il te suffit de cliquer dessus et d'appuyer sur F1

  14. #14
    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
    Pour récupérer la valeur d'une colonne quellequ'elle soit tu dois indiquer la colonne concernée avec la propriété BoundColumn
    Pour afficher la colonne de ta sélection, tu dois utiliser la propriété TextColumn
    Pour avoir les deux colonnes dans ta combo, effectivement columnCount doit être définie à 2
    Dans ton cas, tu as deux solutions.
    Si tu fixes TextColumn = 1, tu peux récupérer la sélection dans ton combo avec
    Si tu fixes TextColumn = 2, tu affiches la sélection de la deuxième colonne mais tu peux récupérer la donnée de la colonne 1 en précisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BoundColumn = 1
    Valeur = Combobox1.value
    Bonne journée

  15. #15
    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 tlm,

    Une troisième solution, sans se soucier des propriétés TextColumn et BoundColumn qui peuvent servir dans le cas d'une combo à 2 colonnes mais lors d'une combo à plusieurs colonnes cela va coincer pour récupérer par exemple les valeurs des colonnes 1, 2, 4 et 5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Me.ComboBox1
        MsgBox .List(.ListIndex, 0) '<-- valeur 1ère colonne de la ligne sélectionnée
        MsgBox .List(.ListIndex, 1) '<-- valeur 2ème colonne de la ligne sélectionnée
    End With
    (.ListIndex, 0)
    • .ListIndex = ligne sélectionnée
    • 0 = 1ère colonne
    • 1 = 2ème colonne
    • 2 = 3ème colonne
    • etc...

  16. #16
    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
    Mais si tu veux afficher une colonne bien définie après sélection, tu dois néanmoins utiliser Textcolumn
    (Hello fring, alors ce we ?)

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

Discussions similaires

  1. [FLASH 8] Probleme de ComboBox
    Par dom_dev dans le forum Flash
    Réponses: 3
    Dernier message: 18/07/2006, 11h24
  2. [FLASH 8] Probleme de comboBox
    Par dom_dev dans le forum Flash
    Réponses: 14
    Dernier message: 06/07/2006, 12h45
  3. [MFC] probleme remplissage comboBox avec ADOLib
    Par moulefrite dans le forum MFC
    Réponses: 3
    Dernier message: 05/04/2006, 15h08
  4. probleme avec combobox et Etats
    Par el_quincho dans le forum IHM
    Réponses: 1
    Dernier message: 13/03/2006, 13h05
  5. [VB.NET] Probleme avec ComboBox
    Par Aspic dans le forum VB.NET
    Réponses: 5
    Dernier message: 20/11/2005, 13h37

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