Liste de Validation sur plusieur niveaux

chasseur44

XLDnaute Occasionnel
Bonjour aux non vacanciers !
Je vous avais sollicité sur une liste de validation à plusieurs niveaux !
Ces listes je les utilise au travers de UserForm (voir exemple dans le premier onglet)
Comment les utiliser dans une feuille en zone combinée ?
Comment adpater la macro ?
Merci de votre aide
 

Pièces jointes

  • Liste de validation niveau 4.xls
    48 KB · Affichages: 36
  • Liste de validation niveau 4.xls
    48 KB · Affichages: 41
  • Liste de validation niveau 4.xls
    48 KB · Affichages: 41

Modeste

XLDnaute Barbatruc
Re : Liste de Validation sur plusieur niveaux

Bonjour chasseur44,

En utilisant des contrôles ActiveX, plutôt que les contrôles de formulaire, ça ressemble très fort au code de ton UserForm.
En pièce jointe, je n'ai écrit le code que pour les deux premières listes déroulantes .. je te laisse tester d'abord, puis continuer si c'est ok ...
 

Pièces jointes

  • Liste de validation niveau 4.xls
    53 KB · Affichages: 43
  • Liste de validation niveau 4.xls
    53 KB · Affichages: 47
  • Liste de validation niveau 4.xls
    53 KB · Affichages: 47

chasseur44

XLDnaute Occasionnel
Re : Liste de Validation sur plusieur niveaux

Merci Modeste j'ai a peu près compris !
Par contre je n'arrive pas avec les données vide :confused:
exemple si je prends dans mon premier choix ETAT MAJOR COTEC en CB1 je ne doit avoir que 2 choix en CB2 (c'est le cas), mais après pour les deux autres niveaux; je devrais rien avoir; ilo doit manquer des choses dans mon script !
 

Pièces jointes

  • liste de validation userform + autre.xls
    70 KB · Affichages: 41

Modeste

XLDnaute Barbatruc
Re : Liste de Validation sur plusieur niveaux

Re-bonjour,

Il faut utiliser "ComboBox3.Clear" (par exemple) pour "vider les listes" quand tu réactualises une liste d'un niveau supérieur

Un exemple ci-dessous:
VB:
Private Sub ComboBox1_Change() 'garnir ComboBox2
  With Sheets("Pour Boite de dialogue")
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In .Range(.[B2], .[B65000].End(xlUp))
    If c.Offset(0, -1) = ComboBox1.Text Then mondico(c.Value) = c.Value
  Next c
  Me.ComboBox2.List = mondico.items
  ComboBox3.Clear
  ComboBox4.Clear
  End With
End Sub
 

chasseur44

XLDnaute Occasionnel
Re : Liste de Validation sur plusieur niveaux

Salut Modeste et encore Merci pour ton aide
Mais je n'y arrive toujours pas (OK pour vider les CB) mais par contre cela ne réagis pas comme les formulaires ; je retrouve toujours des cases vides dans mes ComboBox ! Comment faire pour retrouver l'integrite des CB des Userform, dans les contrôles ActiveX
 

Modeste

XLDnaute Barbatruc
Re : Liste de Validation sur plusieur niveaux

Bonjour chasseur44,

Je pense que j'ai un peu simplifié le traitement, dès le départ: en fait je n'avais pas réalisé qu'on retrouvait une mention "ETAT MAJOR" au niveau 3, pour des niveaux 2 différents :eek:

Après cette douloureuse prise de conscience, voici un nouvel essai ... que je t'invite à tester de manière approfondie (au cas où une autre "subtilité" m'aurait échappé :()

J'ai assorti les ComboBoxx.Clear d'un ComboBoxx.Text="" pour effacer la mention précédemment sélectionnée (qui ne s'efface pas lors du "Clear")
 

Pièces jointes

  • liste de validation userform + autre (V2).xls
    68.5 KB · Affichages: 39

chasseur44

XLDnaute Occasionnel
Re : Liste de Validation sur plusieur niveaux

Je reviens à la charge ...
Dans l'exemple retravaillé par Modeste (tel que vous l'ouvrez) quelle commande faut-il rajouter pour que ma Combobox2 soit directement opérationnelle (c-a-d que je retrouve les deux choix possibles de niveau2) ? ne pas repasser obligatoirement par la Combobox1 !
Merci de votre aide !
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise