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 VBA - Deux listes Combobox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Par défaut Probleme VBA - Deux listes Combobox
    Bonjour a tous !

    Je viens vers vous pour un petit coup de main. En effet, j'aimerais savoir comment concevoir un formulaire composé de deux zones de liste modifiables, la première permettant de filtrer les données affichées dans la seconde. :pt1cable:


    Exemple :

    - J'ai deux catégories : Cac40 et SP100 (Vive la finance ). Ces dernières à mettre dans une zone de liste modifiable (Combobox)

    - Pour chacune de ces catégories , j'ai plusieurs éléments (par exemple les actions de chacun de ces indices boursiers), eux aussi à insérer dans une zone de liste modifiable.

    En gros sous excel voila ce que ca donne :

    colonneA Colonne B

    CAC40 Axa
    CAC40 BNP
    CAC40 Sociétégénérale
    SP100 Microsoft
    SP100 Intel


    Donc le but est de faire apparaitre dans une premiere combobox les deux indices (Pas trop dur avec Rowsource), et faire apparaitre dans une deuxième les éléments relatifs au choix de l'indice de la première Combobox (Donc pour le CAC 40 : Axa, BNP,...)


    Voili voilou, pouvez vous donc m'aider ??? Merci d'avance

  2. #2
    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 connaître le nombre d'entrées dans un combo, regarde à ListCount dans l'aide en ligne, ça te donne le nombre de lignes de ton combo -1
    Ensuite, pour filtrer, tu lis les lignes de ton combo en partant de 1 à ListCount +1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For NoLigne = 1 to Combobox1.ListCount + 1
        Valeur = Combobox1.List(NoLigne)
        'Ici tu fais ton test
        'si ok, tu renseignes le second combo
        Me.combobox2.additem Combobox1.List(NoLigne)
    Next
    Sans filet, de mémoire, donc, tu peux tester pour nous ?
    A+

    NB - Tu peux aussi créer un tableau à deux dimensions des données qui t'intéressent et renseigner ComboBox2 avec List(). Mais c'est plus long à expliquer

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Euh en fait, je suis ce que l'on peut désigner de newbi en VBA et je pense que la deuxieme solution et plus adaptée. En effet, toutes les données sont inscrite dans une feuille excel, avec en colonne A le nom de l'indice et en colonne B le nom de l'action. Donc dans chaque indice, il y a plusieurs actions.

    Affiché les différents indices boursiers dans la première combobox1 est facile : suffit juste de créer un petite zone avec le nom des indices et de l'utiliser dans la rowsource de la combobox1. Mais le truc que j'arrive pas, c'est, en fonction de l'indice que l'on choisit, d'afficher les actions correspondantes.

    J'espere que je me suis bien fait comprendre

    Merci Merci

  4. #4
    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
    Pourquoi pas un combo avec deux colonnes ? Ça te dirait un combo à deux colonnes ? (Une pour le nom de l'action et l'autre pour l'indice ?)
    Dans les propriétés tu mets ColumnCount = 2
    Pour spécifier la donnée que tu veux sur 1 clic, tu précises BoundColumn = 1 ou 2 -> correspond au N° de colonne dans laquelle sera lue la donnée sur 1 clic, et dans rowSource tu mets par exemple A1:B10 qui est la plage de données. Tu peux mettre ça dans Userform_Initialize
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Combobox1.RowSource = "A1:B" & derniereLigne
    Tu dis
    A+

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Par défaut
    Bin ouaip ça me dit bien deux colonnes

    Je vais essayer toute a l'heure et je te redis ca :d

    Merci en tout cas

Discussions similaires

  1. [VBA]amelioration liste combobox
    Par surftoon dans le forum Général VBA
    Réponses: 2
    Dernier message: 25/04/2007, 20h10
  2. Réponses: 1
    Dernier message: 17/01/2007, 23h28
  3. [VBA-E] Probleme de creation de combobox
    Par sirius91 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/01/2007, 19h50
  4. [vba-e] Liste de choix dans ComboBox
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/07/2006, 15h53
  5. [VBA-E] code permettant de comparrer deux listes
    Par tylersmith dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/05/2006, 11h26

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