Bonjour,
J'ai bloqué sur un problème fréquent, et j'arrive pas à régler ça grace au discussion déjà existante.
Voila je veux que ma 2e ComboBox (CboxWBS) soit alimenter SANS DOUBLON. et SANS ligne VIDE.
Mon classeur contient deux feuille de calcul:
- Projects: contient les colonne A: CPM ; B: WBS ; C: Network
- Summury: contient un bouton CmdSelect qui lance une UserForm1.
Cette UserForm1 contient 3 ComboBox:
- CboxCPM : Alimenter a partir de la colonne A sans doublon
- CboxWBS : Alimenter dans un premier temps a partir de la colonne B, mais aprés selection dans la CboxCPM il sera alimenter par la cellule de Droite (Colonne B) de la celulle sélectionnée dans CPM SANS DOUBLON et SANS VIDE.
- CboxNetwork : alimenter par la cellule de Droite (Colonne C) de la celulle sélectionnée dans WBS.
Voici le Code:
Si quelqu'un peut m'aider 🙁...
J'ai bloqué sur un problème fréquent, et j'arrive pas à régler ça grace au discussion déjà existante.
Voila je veux que ma 2e ComboBox (CboxWBS) soit alimenter SANS DOUBLON. et SANS ligne VIDE.
Mon classeur contient deux feuille de calcul:
- Projects: contient les colonne A: CPM ; B: WBS ; C: Network
- Summury: contient un bouton CmdSelect qui lance une UserForm1.
Cette UserForm1 contient 3 ComboBox:
- CboxCPM : Alimenter a partir de la colonne A sans doublon
- CboxWBS : Alimenter dans un premier temps a partir de la colonne B, mais aprés selection dans la CboxCPM il sera alimenter par la cellule de Droite (Colonne B) de la celulle sélectionnée dans CPM SANS DOUBLON et SANS VIDE.
- CboxNetwork : alimenter par la cellule de Droite (Colonne C) de la celulle sélectionnée dans WBS.
Voici le Code:
Code:
Private Sub CmdSelect_Click()
UserForm1.Show
End Sub
Private Sub UserForm_Initialize()
Dim Cell As Range
Me.CboxCPM.Clear
Me.CboxWBS.Clear
Me.CboxNetwork.Clear
For Each Cell In Worksheets("Projects").Range("A2:A10000")
Me.CboxCPM = Cell
If Me.CboxCPM.ListIndex = -1 And Me.CboxCPM <> "" Then Me.CboxCPM.AddItem Cell
Next Cell
End Sub
Private Sub CboxCPM_Change()
Dim TheCell As Range
Me.CboxWBS.Clear
For Each TheCell In Worksheets("Projects").Range("A2:A10000")
If TheCell.Value = Me.CboxCPM.Text And Me.CboxWBS.ListIndex = -1 Then
Me.CboxWBS.AddItem TheCell.Offset(0, 1)
End If
Next TheCell
End Sub
Private Sub CboxWBS_Change()
Dim iCell As Range
Me.CboxNetwork.Clear
For Each iCell In Worksheets("Projects").Range("B2:B10000")
If iCell.Value = Me.CboxWBS.Text Then
Me.CboxNetwork.AddItem iCell.Offset(0, 1)
End If
Next iCell
End Sub
Si quelqu'un peut m'aider 🙁...
Dernière édition: