Bonjour,
J'ai une solution que j'utilise parfois quand je dois définir un menu déroulant dont les éléments dépendent d'un choix fait dans une autre cellule.
Le problème est similaire ici.
Ma méthode consiste à ajouter un filtre au tableau source qui me dit si oui ou non, l'article de la ligne est l'article choisi.
Ensuite je réalise un TCD avec les fournisseurs en ligne et le "filtre" sur "VRAI" en filtre.
De cette manière j'obtiens une liste sans doublon des fournisseurs liés à l'article A.
Pour faire en sorte que le TCD s'actualise à chaque changement de fournisseur, j'ai une macro qui trigger au changement de valeur d'une cellule de la feuille (Worksheet_Change).
'Worksheet_Change s'exécute à chaque modification d'une cellule de la feuille
Private Sub Worksheet_Change(ByVal Target As Range)
'MsgBox "test2"
Dim mySheet As Worksheet
Dim myTCD As PivotTable
Set mySheet = Sheets("Feuil1") 'Indiquer le nom de la feuille ou se trouve le TCD
Set myTCD = mySheet.PivotTables("monTCD") 'Indiquer le nom du TCD
On Error GoTo exitSub
If Target.Name.Name = "Article" Then 'Indiquer le nom de la cellule contenant l'article variable
myTCD.PivotCache.Refresh
On Error Resume Next
myTCD.PivotFields("Filtre").PivotItems("TRUE").Visible = True
On Error Resume Next
myTCD.PivotFields("Filtre").PivotItems("FALSE").Visible = False
End If
exitSub:
Exit Sub
End Sub
Le résultat en pièce jointe...
J'ai conscience que c'est peut-être sortir l'artillerie lourde pour un problème léger mais... ça marche bien pour moi ;)
Bonne journée,