Bonjour à tous,
J'ai un classeur constitué de 52 onglets.
Une macro permet à l'utilisateur de créer des tableaux dynamiques croisés sur plusieurs onglets de son choix.
J'ai écrit le code ci dessous
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= Aire(), _
Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _
NumCellule, TableName:= _
NomTableau, DefaultVersion:=xlPivotTableVersion14
ActiveSheet.PivotTables(NomTableau).PivotSelect "", xlDataAndLabel, True
With ActiveSheet.PivotTables(NomTableau).PivotFields("Nombre de Valeur")
.Caption = "Somme de Valeur"
.Function = xlSum
End With
dans lequel Aire() est
Aire(1) = "Feuil1" & "!R7C4:R35C6"
Aire(2) = "Feuil2" & "!R7C4:R35C6"
ect... en fonction du choix
Le tableau dynamique est correctement crée, et il reprend bien les données des feuilles. Mais je ne peux pas enregistrer le classeur, le message suivant est affiché:
"Des erreurs ont été détectées lors de l'enregistrement de ...."
Après recherches, cela est lié à l'utilisation du tableau Aire() dans la fonction puisque si j'écris directement Array("plage1","plage2"..) je n'ai plus le problème d'enregistrement.
Je n'ai toujours pas trouvé (malgré tous les tutos que j'ai pu trouver) comment passer la plage de la SourceData par l'intermédiaire d'un tableau.
Si quelqu'un à une piste je l'en remercie par avance
Je continue à chercher
Partager