Combo box dynamique dépendante d'une cellule
Bonjour,
Alors voila je réalise un tableur pour mes comptes et souhaite pouvoir Catégoriser et sous catégoriser mes dépenses.
je dispose donc de 3 colonne libellé de paiement / catégorie / sous catégorie ( ces deux dernières on chacune une combo box qui se positionne au niveau de la cellule sélectionner avec la mise en forme de la cellule elle est donc dynamique sur cette colonne )
pour la combobox catégorie pas de soucis cela fonctionne parfaitement . Maintenant je souhaite que la combobox sous catégorie soit dépendante de la valeur de la cellule associer à la catégorie
je rencontre des difficultés à enregistre chaque items dans la combobox en fonction de la cellule : Ci joint le code
J'espère que vous pourrez m'aider sur mon problème cela fait 3jours que je suis bloque la dessus, je me resigne donc à vous demande votre aide
Cordialement
'====================================================================================
' SOUS-CATEGORIE
'=====================================================================================
If Not Intersect(Target, Range("D2:D1048576")) Is Nothing And Target.Count = 1 Then
lstcol_cat = Cells(1, Columns.Count).End(xlToLeft).Column
cat_value = Target.Offset(0, -1).Value
ComboBoxsousCategories.Clear
For p = 6 To lstcol_cat
If Cells(1, p).Value = cat_value Then
categorie2 = Cells(1, p).Column
End If
lstrw_cat = Cells(Rows.Count, categorie2).End(xlUp).Row
For i = 2 To lstrw_cat
ComboBoxsousCategories.AddItem Cells(i, categorie2).Value
Next
Next
Me.ComboBoxsousCategories.Value = Target.Value
Me.ComboBoxsousCategories.Top = Target.Top
Me.ComboBoxsousCategories.Left = Target.Left
Me.ComboBoxsousCategories.Width = Target.Width
Me.ComboBoxsousCategories.Height = Target.Height
Me.ComboBoxsousCategories.Visible = True
Me.ComboBoxsousCategories.Activate
Else
Me.ComboBoxsousCategories.Visible = False
End If
End Subbonjour le fil,
un essai sans fichier
'====================================================================================
' SOUS-CATEGORIE
'=====================================================================================
Dim lCol, lRow, Cat_Value, CBBox, b
With target
If .Row <> 1 And .Column = 4 And .Count = 1 Then 'en colonne D mais ne pas D1
Set CBBox = ComboBoxsousCategories 'votre combobox
Cat_Value = .Offset(, -1).Value 'Catégorie
If Len(Cat_Value) > 0 Then 'non vide
lCol = Application.Match(Cat_Value, Cells(1, 6).Resize(, 1000), 0) 'chercher ce valeur dans la première ligne à partir de la 6ième cellule
If IsNumeric(lCol) Then 'trouvé !!!
lCol = lCol + 5 'ajouter 5 parce qu'on est commencé à chercher à partir de la 6ième cellule
lRow = Cells(Rows.Count, lCol).End(xlUp).Row 'dernière ligne
CBBox.Clear
CBBox.List = Cells(2, lCol).Resize(lRow - 1) 'assigner la plage
CBBox.Value = .Value
CBBox.Top = .Top
CBBox.Left = .Left
CBBox.Width = .Width
CBBox.Height = .Height
CBBox.Visible = True
CBBox.Activate
b = True 'drapeau UP
End If
End If
If Not b Then CBBox.Visible = False 'no drapeau UP = CBBox invisible
End If
End With