Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1842 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Liste déroulante conditionnelle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Liste déroulante conditionnelle

n°2301114
krio918008
Posté le 24-05-2017 à 14:47:43  profilanswer
 

Bonjour a tous  
Est ce quelequ'un pourrait m'aider à coder en VBA 3 Combobox liées
( la 2éme dépend de la 1ère et la 3ème dépend de la 2ème ) sachant que les combobox sont placés sur un Sheet et non un Userforme.
le remplissage des 3 combobox se fait à partir d'un tableau de 3 Colonnes : Region - Pays - Marque  
Combobox1 = Region
Combobox2 = Pays
Combobox3 = Marque
j'espere que j'étais claire dans ma question  
Merci de m'apporter votre aide j'en ai vraiment besoin et j'en serai très reconnaissant

mood
Publicité
Posté le 24-05-2017 à 14:47:43  profilanswer
 

n°2301999
vylkor
Posté le 14-06-2017 à 14:26:29  profilanswer
 

Salut, j'ai du gèrer une situation similaire il y a pas longtemps pour une combobox avec des équipements puis une deuxième avec les sous-équipements.
 
Je sais pas comment ça pourrais marcher avec 3 entrées, mais voice la solution que j'avais trouvé a mon problème :
 
Mes équipements et sous équipements sont renseignés comme il suit dans une feuille excel "DATA":
Equipement 1 -> Equipement 2 -> Equipement 3 -> ...
Ss-Equip 1          Ss-Equip 1          Ss-Equip 1
Ss-Equip 2          Ss-Equip 2          ...
Ss-Equip 3          ...                      ...
 
Je crée la liste déroulante des équipements

Code :
  1. Private Sub UserForm_Initialize()
  2. 'Création de la liste déroulante des équipements
  3.     nb_equip = Worksheets("DATA" ).Range("B4" ).End(xlToRight).Column
  4.     selec_equip.Clear
  5.    
  6.         For i = 2 To nb_equip
  7.         nb_equip_nom = Worksheets("DATA" ).Cells(4, i).Value
  8.         selec_equip.AddItem nb_equip_nom
  9.         Next I
  10. End Sub


 
Ensuite, pour creer la deuxième liste voila le code qui se charge quand on clic sur la combobox des sous équipements:
 

Code :
  1. Private Sub selec_equip_Change()
  2.     nb_equip = Worksheets("DATA" ).Range("B4" ).End(xlToRight).Column
  3. 'Comptage du nombre d'equipements
  4.     equip = Range(Worksheets("DATA" ).Cells(4, 2), Worksheets("DATA" ).Cells(4, nb_equip)).Find(selec_equip.Value).Column
  5. 'On retrouve le numero de colonne de l'équipement selectioné dans la combobox équipement (selec_equip)
  6. 'Création de la liste déroulante des sous-équipements
  7.     nb_ss_equip = Worksheets("DATA" ).Cells(4, equip).End(xlDown).Row
  8. 'On compte le nombre de ss équipements rattaché a l'équipement
  9.     selec_ss_equip.Clear
  10. 'On nettoi la combobox des ss équipements, pour eviter l'accumulation
  11.    
  12.         For i = 5 To nb_ss_equip
  13.         nb_ss_equip_nom = Worksheets("DATA" ).Cells(i, equip).Value
  14.         selec_ss_equip.AddItem nb_ss_equip_nom
  15.         Next i
  16. 'On ajoute tout les ss équipements a la liste
  17. End Sub


 
Dans mon cas, un sous équipement peut être rattaché qu'a un seul équipement, je suis pas surs que ça soit aussi vrai dans ton cas, mais tu trouvera peut être l'inspiration dans ce bout de code.
 
Les bugs connus : plantage si il n'y a aucun équipement rentré, ou un équipement sans sous équipement, mais c'est normalement impossible.
 
Bon courage  :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Liste déroulante conditionnelle

 

Sujets relatifs
Problème d'encodage de liste chainéeConstructeur de copie Liste chainée C++
[resolu] liste avec liens qui ne fonctionne pasTableau javascript et liste déroulante?
Problème de listeboucle de dico et liste
exploiter une liste dans un retour Jsonparcours d'une liste en lisp
langage c et liste chainee 
Plus de sujets relatifs à : Liste déroulante conditionnelle



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR