Bonjour

J'ai fais un Tableau croisé dynamique sur plusieurs feuilles mais comme elle vont changer de nom tout en gardant la même architecture, j'aimerai faire un code du type:


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
23
24
 
Sub Decompte()
 
        Sheets("Décompte").Select
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlConsolidation, SourceData:= _
        Array(Array(Sheets(5).Range("A80:M109"), "Élément1"), Array( _
        Sheets(6).Range("A80:M109"), "Élément2"), Array(Sheets(7).Range("A80:M109") _
        , "Élément3"), Array(Sheets(8).Range("A80:M109"), "Élément4"), Array( _
        Sheets(9).Range("A80:M109"), "Élément5"), Array(Sheets(10).Range("A80:M109") _
        , "Élément6"), Array(Sheets(11).Range("A80:M109"), "Élément7"), Array( _
        Sheets(12).Range("A80:M109"), "Élément8"), Array(Sheets(13).Range("A80:M109") _
        , "Élément9"), Array(Sheets(14).Range("A80:M109"), "Élément10"), Array( _
        Sheets(15).Range("A80:M109"), "Élément11"), Array( _
        Sheets(16).Range("A80:M109"), "Élément12"), Array( _
        Sheets(17).Range("A80:M109"), "Élément13"), Array( _
        Sheets(18).Range("A80:M109"), "Élément14"), Array( _
        Sheets(19).Range("A80:M109"), "Élément15"), Array( _
        Sheets(20).Range("A80:M109"), "Élément16"))).CreatePivotTable _
        TableDestination:="'[répartition globale.xls]Décompte'!R3C1", TableName:= _
        "Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10
    ActiveSheet.PivotTables("Tableau croisé dynamique2").DataPivotField.PivotItems( _
        "Somme de Valeur").Position = 1
    ActiveWorkbook.ShowPivotTableFieldList = False
End Sub
Mais j'ai une erreur "incompatibilité de type". Je me demande aussi s'il n'y a pas un moyen de l'écrire plus simplement avec une boucle for to ?

Merci pour vos conseils.