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 :

[Excel] Gérer des combobox dynamiques


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut [Excel] Gérer des combobox dynamiques
    Salut,

    Alors je cherche à gérer des liens entre des combobox créés dynamiquement. Mon userform est vide au départ et on peut y ajouter des combobox qui vont par 2 (cf pièce jointe). Je voudrais pouvoir faire en sorte que les éléments se trouvant dans la 2e combobox dépendent de la valeur de la 1ere combobox mais je ne peux pas utiliser la subroutine "Combobox1_Change()" car ma combobox n'est pas présente sur le userform à l'origine (ou alors je n'arrive pas à l'utiliser...). En fait ce que je cherche à faire ressemble beaucoup à la "Mise en forme Conditionnelle" des cellules sous Excel.

    Si qqn a une idée (ou n'a absolument rien compris à ce que je viens de dire parce que c'est pas forcement très clair ).

    En fait à la limite j'avais eu une idée: fixer une limite au nombre de combobox que l'on peut ajouter, inserer sur mon userform de maniere statique ce nombre limite de combobox, les supprimer à l'initialisation et faire fonctionner mon code normalement mais c'est pas très "propre" comme solution.

    Voila pour mon problème

    P.S. j'ai tout tenté pour être le plus clair possible mais c'est un peu compliqué comme problème et je peux pas vraiment vous mettre mon code parce qu'il est énorme.
    Images attachées Images attachées  

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben tu as une idée de ton nombre limite ..? comment tu fais lorsque l'userform est trop petit..?

    la propriété visibile ne te permet-t'elle pas de contourner se probléme.. ?

  3. #3
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut
    comment tu fais lorsque l'userform est trop petit..?
    En fait je modifie le "Scroll.Height" d'une frame qui contient toutes mes conditions (cf fichier attaché dans le premier message).
    Mais je ne vois pas en quoi la propriété visible pourrait m'aider, est ce que tu pourrais être plus clair stp.

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben crée tous tes combo box.. et tu ne rend visible que ce dont tu as besoin..

  5. #5
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut
    En fait à la limite j'avais eu une idée: fixer une limite au nombre de combobox que l'on peut ajouter, inserer sur mon userform de maniere statique ce nombre limite de combobox, les supprimer à l'initialisation et faire fonctionner mon code normalement mais c'est pas très "propre" comme solution.
    C'etait une fausse bonne idée, on ne peut pas utiliser la commande remove avec des controls présents sur le userform à la base...

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par VBall
    C'etait une fausse bonne idée, on ne peut pas utiliser la commande remove avec des controls présents sur le userform à la base...
    oui mais on peu changer la propriété visible.. si cela te conviens..

  7. #7
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut
    ben crée tous tes combo box.. et tu ne rend visible que ce dont tu as besoin..
    Non je peux pas faire comme ca parce que l'utilisateur peut enlever des conditions (qui contiennent les combobox) et les autres sont ensuite renommées et renumérotées.
    En fait je cherche à obtenir le même effet que le userform qui est affiché quand on utilise la mise en forme conditionelle des cellules (dans le menu Format).

  8. #8
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut
    Personne n'aurait une autre idée? (ton idée est bonne bbil mais elle ne fonctionne pas dans ma situation)

  9. #9
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    Je voudrais pouvoir faire en sorte que les éléments se trouvant dans la 2e combobox
    dépendent de la valeur de la 1ere combobox mais je ne peux pas utiliser la subroutine
    "Combobox1_Change()" car ma combobox n'est pas présente sur le userform à l'origine
    une solution consiste à créer un module de classe qui va gérer les evenements (par exemple Combobox1_Change) pour chaque objet que tu vas créer dynamiquement

    tu trouveras plusieurs exemples en utilisant les mots clé "userform" et "classe" dans le moteur de recherche du site


    michel

  10. #10
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut
    Salut SilkyRoad,

    une solution consiste à créer un module de classe qui va gérer les evenements (par exemple Combobox1_Change) pour chaque objet que tu vas créer dynamiquement
    En gros il faudrait que je crée une classe qui hérite de la classe MsForms.Combobox? Mais je peux avoir accès à l'évenement Change de cette classe ou il faut que j'en recrée un du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Implements MSForms.ComboBox
     
    Public Event Change()
     
    Public Property Let Value(byval NewValue As String)
        RaiseEvent Change
        ...
    End Property
    [edit] en fait on ne peut pas du tout faire comme ca... [/edit]
    tu trouveras plusieurs exemples en utilisant les mots clé "userform" et "classe" dans le moteur de recherche du site
    J'ai essayé, j'ai pas trouvé grand chose (en tout cas rien de suffisament détaillé pour moi: je débute dans le VBA et on me demande des trucs un peu compliqué...). Merci de ton aide Michel, je vais essayé d'approfondir tout ca (la solution n'est pas loin, je le sens)

  11. #11
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    voici un exemple pour gérer des CheckBox créés dynamiquement...à adapter


    http://www.developpez.net/forums/sho...19#post1070319


    bon apres midi
    michel

  12. #12
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut
    Ca m'a tout l'air d'être parfait.
    J'adapte ca à mon code et je te previens si ca marche
    Merci beaucoup

  13. #13
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut
    Merci SilkyRoad

    Ca marche nickel . J'ai plus qu'à relier tout ca à une base de données access et j'aurais un superbe userform pour faire des requetes dans une base de donnée...

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 06/02/2009, 16h54
  2. Comment gérer des classements dynamiques?
    Par bbo1991 dans le forum Conception/Modélisation
    Réponses: 2
    Dernier message: 11/06/2008, 18h59
  3. [PHP-JS] Gérer des listBox dynamiquement
    Par joquetino dans le forum Langage
    Réponses: 5
    Dernier message: 11/07/2006, 16h57
  4. Réponses: 6
    Dernier message: 01/06/2006, 15h11
  5. [FLASH 8] gérer des boutons dynamiquement
    Par gregooo dans le forum Flash
    Réponses: 1
    Dernier message: 04/02/2006, 21h22

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