Bonjour,
Je veux automatiser la génération de rapport à l'aide de macro en VBA.
Le but à la fin est de récupérer une extraction qui aura toujours la même forme (nombre et nom de colonnes) mais un nombre de lignes et des valeurs différentes biensur. On colle cette extraction dans un classeur Excel ou il y a un feuille destinée à accueillir cette extraction, et une feuille avec des tableaux croisés dynamiques pour gérer les rapports.
Les tableaux croisés dynamiques sont déjà fait, je voudrais juste que la macro viennent les réactualiser en fonction des nouvelles données et change le filtre en fonction de la date à laquelle on est.
J'ai testé sur mon extraction en faisant le code, ca marchait bien. Le problème vient quand j'ai vidé la feuille extraction et que j'ai recollé une nouvelle extraction (qui était en fait la même, pour le moment les données sont identiques). J'obtiens alors un blocage accompagné du message suivant :
erreur d'exécution '1004' :
Le nom du champ de tableau croisé dynamique n'est pas valide. Pour créer un rapport de tableau croisé dynamique, vous devez utiliser des données sous forme de liste avec des étiquettes de colonnes. Si vous changez le nom d'un champ de tableau croisé dynamique, vous devez taper un nouveau nom pour le champ.
Le code incriminé est le suivant :
en espérant que quelqu'un puisse m'aider, c'est très important. Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Sheets("Rapports").Select ' Oter la protection de la feuille ActiveSheet.Unprotect ' Opérateur créateur ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotCache.Refresh ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Mois").CurrentPage = mois_b & "-" & annee ' Problèmes ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotCache.Refresh ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Mois").CurrentPage = mois_b & "-" & annee ' Groupe de traitement ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotCache.Refresh ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("Mois").CurrentPage = mois_b & "-" & annee ActiveSheet.PivotTables("Tableau croisé dynamique5").PivotCache.Refresh ActiveSheet.PivotTables("Tableau croisé dynamique5").PivotFields("Mois").CurrentPage = mois_b & "-" & annee ' Temps de traitement ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotCache.Refresh ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields("Mois").CurrentPage = mois_b & "-" & annee ' Evolution ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotCache.Refresh ' Protection de la feuille ActiveSheet.Protect
Partager