Bonjour,
Dans le cadre d'un projet j'ai besoin de réaliser une succession de combobox.
Vous trouverez ci-joint mon fichier excel simplifié qui expose mon projet et problème (que j'ai essayé de résoudre tout l'après midi en vain).
Le tableau sur la feuille "base_de_donnee" présente une liste de produits.
Ces produits sont décomposés en plusieurs parties:
Jaune => partie_materiel
Orange clair=> sous_partie_matériel
Aucun remplissage=> Ce sont les produits
1) Je souhaite dans une Combobox 1 que l'on puisse sélectionner les "parties principales" ce que j'ai réussi à faire.
2) En fonction de la "partie principale" selectionnée dans la Combobox 1, il faudrait que l'on puisse choisir une des sous-parties correspondantes dans une combobox2.
3) Et enfin grâce au choix de la Combobox 3 sélectionner les produits disponibles de cette sous partie.
Pour le point N°1 j'ai utilisé cette méthode qui détecte les couleurs des parties principales:
2) Pour le point N°2, il faudrait sur le même principe que je puisse commencer a balayer les lignes à partir de la partie principale choisi dans la Combobox1 afin de récupérer toutes les sous parties dans ma combobox2 qui sont en orange clair. Le problème est que je n'arrive pas à trouver comment trouver ce fameux numéro de ligne.
Il me manque donc une partie du code suivant pour le faire fonctionner :
Private Sub partie_materiel_Change()
Dim i as Integer
Comment définir i?
Do While Worksheets("base_de_donnees").Cells(i, 2).Interior.ColorIndex <> 6
If Worksheets("base_de_donnees").Cells(i, 2).Interior.ColorIndex = 19 Then
sous_partie_materiel.AddItem Worksheets("base_de_donnees").Cells(i, 2)
End If
Loop
End Sub
Une fois que j'aurai compris comment passer de l'étape 1 à 2, je devrais facilement me débrouiller pour continuer les étapes suivant et continuer mon projet.
J'espère avoir exposé mon problème le mieux possible
Je vous remercie par avance pour votre aide et le temps accordé !
Antoine
Dans le cadre d'un projet j'ai besoin de réaliser une succession de combobox.
Vous trouverez ci-joint mon fichier excel simplifié qui expose mon projet et problème (que j'ai essayé de résoudre tout l'après midi en vain).
Le tableau sur la feuille "base_de_donnee" présente une liste de produits.
Ces produits sont décomposés en plusieurs parties:
Jaune => partie_materiel
Orange clair=> sous_partie_matériel
Aucun remplissage=> Ce sont les produits
1) Je souhaite dans une Combobox 1 que l'on puisse sélectionner les "parties principales" ce que j'ai réussi à faire.
2) En fonction de la "partie principale" selectionnée dans la Combobox 1, il faudrait que l'on puisse choisir une des sous-parties correspondantes dans une combobox2.
3) Et enfin grâce au choix de la Combobox 3 sélectionner les produits disponibles de cette sous partie.
Pour le point N°1 j'ai utilisé cette méthode qui détecte les couleurs des parties principales:
Private Sub UserForm_Initialize()
sous_partie_materiel.Clear
Dim i As Integer
i = 1
Do While Worksheets("base_de_donnees").Cells(i, 2) <> ""
If Worksheets("base_de_donnees").Cells(i, 2).Interior.ColorIndex = 6 Then
partie_materiel.AddItem Worksheets("base_de_donnees").Cells(i, 2)
End If
i = i + 1
Loop
End Sub
sous_partie_materiel.Clear
Dim i As Integer
i = 1
Do While Worksheets("base_de_donnees").Cells(i, 2) <> ""
If Worksheets("base_de_donnees").Cells(i, 2).Interior.ColorIndex = 6 Then
partie_materiel.AddItem Worksheets("base_de_donnees").Cells(i, 2)
End If
i = i + 1
Loop
End Sub
2) Pour le point N°2, il faudrait sur le même principe que je puisse commencer a balayer les lignes à partir de la partie principale choisi dans la Combobox1 afin de récupérer toutes les sous parties dans ma combobox2 qui sont en orange clair. Le problème est que je n'arrive pas à trouver comment trouver ce fameux numéro de ligne.
Il me manque donc une partie du code suivant pour le faire fonctionner :
Private Sub partie_materiel_Change()
Dim i as Integer
Comment définir i?
Do While Worksheets("base_de_donnees").Cells(i, 2).Interior.ColorIndex <> 6
If Worksheets("base_de_donnees").Cells(i, 2).Interior.ColorIndex = 19 Then
sous_partie_materiel.AddItem Worksheets("base_de_donnees").Cells(i, 2)
End If
Loop
End Sub
Une fois que j'aurai compris comment passer de l'étape 1 à 2, je devrais facilement me débrouiller pour continuer les étapes suivant et continuer mon projet.
J'espère avoir exposé mon problème le mieux possible
Je vous remercie par avance pour votre aide et le temps accordé !
Antoine