Besoin d'aide pour utiliser vba pour remplir les blancs laissés par le tableau pivot excel lorsque vous utilisez% de différence par rapport à la ligne précédente

Donc, je ne suis pas encore très informé quand il s'agit de VBA. J'ai une expérience avec Java, donc je comprends les concepts de structure derrière le encoding et je peux lire le code intermédiaire de base. Mais quand il s'agit de l'écrire moi-même, je suis toujours un 1.5 sur 10 en termes d'écriture VBA moi-même. Donc, toute aide serait grandement appréciée.

J'ai donc l'exemple suivant de tableau pivot (mon réel est d'environ 10 ans de données avec quelques autres colonnes): entrez la description de l'image ici

Les points rouges et jaunes sont mes problèmes. Les colonnes avec des titres vierges ne représentent que quelques différences par rapport à la ligne précédente. Cependant, comme vous pouvez le voir, en utilisant cela laisse des espaces vides pour le premier mois de chaque année (ce sont les points jaunes). En outre, pour les lignes d'année, il ne calcule pas la% de différence par rapport à l'année précédente (les points rouges).

Donc, ce dont j'utilise est (probablement) un PivotTableUpdate ou PivotTableChangeSync (je ne comprend toujours pas la différence en fait) pour remplir datatables dans ces cellules avec les points rouge et jaune. Des pensées?

Modifier: Comme demandé, voici datatables alimentant le tableau pivot:

entrez la description de l'image ici

Pour le formatting, j'ai déplacé la moitié inférieure de la configuration et à droite pour l'intégrer à une seule image.

Sans VBA, vous pourriez essayer cette tentative, je pourrais l'étendre, mais pas aujourd'hui, ce pourrait être un moyen de résoudre ce problème sans VBA, mais il me manque quelque chose.

entrez la description de l'image ici

E2=SUMIFS(D:D,C:C,C2) F2=IFERROR(E2/E1;1)-1 

Sur le tableau croisé dynamic, vous ajoutez NP et Test2 à la section des valeurs, vous pouvez utiliser Max ou Sum pour Test2 et cela ressemblera à ceci:

entrez la description de l'image ici

ATTENTION ici est une erreur, car la sum des différences n'ajoute pas, en regardant l'ANNÉE! Cependant, vous pouvez utiliser les formudatatables pour get les sums et les différences entre les années;)