Pour créer un tableau croisé dynamique par le vba je le fais comme cela :
ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
'Ta source de donnée , Version:=6).CreatePivotTable TableDestination:= _
'La position ou tu veux le mettre en référence R1C1 , TableName:="Name", _
DefaultVersion:=6
Après il te faut un tableau comme source de données avant de réaliser directement un Tableau Croisé Dynamique, je pense pas que tu puisse prendre une variable "T" comme cela.
Je te dirais de passer par PowerQuery qui est un outil très puissant permettant de prendre ton tableau de base, de le modifier / filtrer afin de prendre en compte seulement les données que tu désires. Et avec ce dernier tu peux obtenir directement un TCD en sortie ;)