pumbathekings
XLDnaute Junior
Bonjour à tous,
Dans mon projet, j'ai deux userforms. le premier qui définit le domaine d'étude (référence plus autres) et le second gère des fonctions et sous-fonctions.
Lorsque je choisis l'élément de référence, il apparait dans le second userform listbox Reference_HC.
Un code à deja été créé qui ajoute des fonctions dans la listbox "Functions". j'aimerai étendre ce code.
En fonction de la reference dans la listbox "Reference_HC" et des checkbox cochées (1, 2 ou 3) il aille chercher les functions dans la feuille DATA1 et les colle dans la listbox "Functions" en fonction de leur référence dans les colonnes F,G ou H dans cette meme feuille.
Ci-dessous le code en question et ci-joint l'excel.
Private Sub CheckBox1_Click()
Dim Cel As Range, i%
With Sheets("Functions")
Select Case Me.CheckBox1.Value
Case True
For Each Cel In Range(.Cells(2, 6), .Cells(.Cells(Rows.Count, 6).End(xlUp).Row, 4))
If Cel.Offset(0, 1) = "O&G" And .Cells(Cel.Offset(0, -2).Row, 2) <> "" Then Me.Functions.AddItem Cel.Offset(0, -2).Value
Next Cel
Case False
For i = Me.Functions.ListCount - 1 To 0 Step -1
For Each Cel In Range(.Cells(2, 4), .Cells(.Cells(Rows.Count, 4).End(xlUp).Row, 4))
If Cel.Offset(0, 1) = "O&G" And .Cells(Cel.Offset(0, -2).Row, 2) = Me.Functions.List(i) Then
Me.Functions.RemoveItem (i)
Exit For
End If
Next Cel
Next i
Functions_change
End Select
End With
End Sub
Merci
Pumba
Dans mon projet, j'ai deux userforms. le premier qui définit le domaine d'étude (référence plus autres) et le second gère des fonctions et sous-fonctions.
Lorsque je choisis l'élément de référence, il apparait dans le second userform listbox Reference_HC.
Un code à deja été créé qui ajoute des fonctions dans la listbox "Functions". j'aimerai étendre ce code.
En fonction de la reference dans la listbox "Reference_HC" et des checkbox cochées (1, 2 ou 3) il aille chercher les functions dans la feuille DATA1 et les colle dans la listbox "Functions" en fonction de leur référence dans les colonnes F,G ou H dans cette meme feuille.
Ci-dessous le code en question et ci-joint l'excel.
Private Sub CheckBox1_Click()
Dim Cel As Range, i%
With Sheets("Functions")
Select Case Me.CheckBox1.Value
Case True
For Each Cel In Range(.Cells(2, 6), .Cells(.Cells(Rows.Count, 6).End(xlUp).Row, 4))
If Cel.Offset(0, 1) = "O&G" And .Cells(Cel.Offset(0, -2).Row, 2) <> "" Then Me.Functions.AddItem Cel.Offset(0, -2).Value
Next Cel
Case False
For i = Me.Functions.ListCount - 1 To 0 Step -1
For Each Cel In Range(.Cells(2, 4), .Cells(.Cells(Rows.Count, 4).End(xlUp).Row, 4))
If Cel.Offset(0, 1) = "O&G" And .Cells(Cel.Offset(0, -2).Row, 2) = Me.Functions.List(i) Then
Me.Functions.RemoveItem (i)
Exit For
End If
Next Cel
Next i
Functions_change
End Select
End With
End Sub
Merci
Pumba