Création de liste déroulante dépendante avec code VBA

Bonsoir à tous

Je veux créer des listes déroulantes dépendantes avec les code VBA mais je constate qu'il y a une erreur sur mes codes. voici les codes

Déclaration des variables

Dim Colonne As Integer

Dim I As Integer, J As Integer

pour la première liste je tape

'chargement de la liste des centres

Private Sub UserForm_Initialize()

'initialisation des variables

Colonne = 2 ' affectation du numéro de colonne à 2 car première donnée en collonne B

'on efface la couleur de remplissage des entêtes de colonnes, ici les noms des régions

Sheets("liste").Range("b2:r2").Interior.ColorIndex = Clear

' on utilise une boucle qui va charger les noms des régions dans la liste déroulante

Do While Cells(2, Colonne).Value <> ""

UserForm1.T1.AddItem Cells(2, Colonne).Value

Colonne = Colonne + 1 'on incrémante le numero de colonne afin de passer à la colonne

Loop

End Sub

et ceci marche à mon avis, mais pour le niveau 2 je tape ce code

Private Sub T1_Change()

I = 2

UserForm1.T2.Clear

Sheets("liste").Range("b2:r2").Interior.ColorIndex = Clear

Do While Cells(2, I).Value <> ""

If Cells(2, I).Value = T2.Value Then

Cells(2, I).Select

ActiveCell.Interior.ColorIndex = 32

Colonne = ActiveCell.Column

End If

I = I + 1

Loop

J = 3

Do While Cells(J, Colonne).Value <> ""

UserForm1.T2.AddItem Cells(J, Colonne).Value

J = J + 1

Loop

T2.ListIndex = 0

End Sub

Et ici je constate qu'au débogage la VBA il détecte la ligne du code "T2.ListIndex = 0".

le fichier original utilisé est joint.

Merci

Bonjour

Modife de Private Sub T1_Change

A+

Maurice

Private Sub T1_Change()
   With Feuil1
      Col = .Rows(2).Cells.Find(T1.Value, LookAt:=xlWhole).Column
      T2.Clear
      T2.List = .Range(.Cells(3, Col), .Cells(.Cells(Rows.Count, Col).End(xlUp).Row, Col)).Value
   End With
End Sub

Problème résolu,

Merci pour l'assistance.

Rechercher des sujets similaires à "creation liste deroulante dependante code vba"