Macro tableau croisé dynamique successifs

Bonjour,

Je lance un petit appel à l'aide, je cherche à créer une macro qui me permet de récupérer des graphiques à partir d'un tableau croisé dynamique.

J'ai une base de donnée qui fait que j'ai besoin de gérer des filtres mais comme cela peut bouger j'ai imaginé faire une boucle et créer un tableau croisé dynamique a chaque boucle pour la plage de données. J'ai donc mis un copier coller de ma plage de données mais lorsque je veux créer le tableau croisé le code ne fonctionne pas. Est ce que je n'ai pas oublié de dimensionner quelque chose pour le tableau croisé ?

voici la totalité du code que j'ai pour le moment. Cela plante juste après le Next PvtTCD.

Merci d'avance pour votre aide

Sub tabcroisedyn()

 Set Trav = Sheets("Base")
    ligne = 0
    ligneref = 2
    ligne2 = 2

    Sheets("Base").Select
    Range("A" & ligneref).Select
    Do
    If ActiveCell.Value = "" Then

            Exit Do
        Else
    While Trav.Cells(ligne2, 1).Text = Trav.Cells(ligneref, 1).Text
        ligne = ligne + 1
        ligne2 = ligne2 + 1

    Wend
    ligne2 = ligneref + ligne
    l = 2

    Sheets("Base").Select
    Set p = Range(Trav.Cells(ligneref, 1), Trav.Cells(ligne2 - 1, 12))
    p.Select
    Selection.Copy
    Sheets("Trav macro").Select
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

     ActiveWorkbook.Names.Add Name:="TCDbase", RefersToR1C1:= _
        "='Trav macro'!R1C1:R & Rows.Count.End(xlDown)& C12"
        ActiveWorkbook.Names("TCDbase").Comment = ""

Dim wshTCD  As Worksheet
Dim PvtTCD As PivotTable
Set wshTCD = Worksheets("TCD")
    For Each PvtTCD In wshTCD.PivotTables
        PvtTCD.TableRange2.Clear
    Next PvtTCD
'Le moment ou ça plante    
Set PvtTCD = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="TCDbase") _
            .CreatePivotTable(tabledestination:=wshTCD.Range("B5"), TableName:="TCDformule")

    With ActiveSheet.PivotTables("TCDformule").PivotFields("Semaine" _
        )
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("TCDformule").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique2").PivotFields("Borne_Basse"), _
        "Nombre de Borne_Basse", xlCount
    With ActiveSheet.PivotTables("TCDformule").PivotFields( _
        "Nombre de Borne_Basse")
        .Caption = "Tolérance basse"
        .Function = xlAverage
    End With
    ActiveSheet.PivotTables("TCDformule").AddDataField ActiveSheet. _
        PivotTables("TCDformule").PivotFields("Borne_Haute"), _
        "Nombre de Borne_Haute", xlCount
    With ActiveSheet.PivotTables("TCDformule").PivotFields( _
        "Nombre de Borne_Haute")
        .Caption = "Tolérance haute"
        .Function = xlAverage
    End With
    ActiveSheet.PivotTables("TCDformule").AddDataField ActiveSheet. _
        PivotTables("TCDformule").PivotFields("Resultat Numérique"), _
        "Nombre de Resultat Numérique", xlCount
    With ActiveSheet.PivotTables("TCDformule").PivotFields( _
        "Nombre de Resultat Numérique")
        .Caption = "Analyse Moyenne"
        .Function = xlAverage
    End With
    ActiveSheet.PivotTables("TCDformule").AddDataField ActiveSheet. _
        PivotTables("TCDformule").PivotFields("Valeur_Attendue"), _
        "Nombre de Valeur_Attendue", xlCount
    With ActiveSheet.PivotTables("TCDformule").PivotFields( _
        "Nombre de Valeur_Attendue")
        .Caption = "Valeur attendue"
        .Function = xlAverage
    End With
    ActiveSheet.PivotTables("TCDformule").AddDataField ActiveSheet. _
        PivotTables("TCDformule").PivotFields("Resultat Numérique"), _
        "Nombre de Resultat Numérique", xlCount
    With ActiveSheet.PivotTables("TCDformule").PivotFields( _
        "Nombre de Resultat Numérique")
        .Caption = "Analyse Min"
        .Function = xlMin
    End With
    ActiveSheet.PivotTables("TCDformule").AddDataField ActiveSheet. _
        PivotTables("TCDformule").PivotFields("Resultat Numérique"), _
        "Nombre de Resultat Numérique", xlCount
    ActiveWindow.SmallScroll Down:=9
    With ActiveSheet.PivotTables("TCDformule").PivotFields( _
        "Nombre de Resultat Numérique")
        .Caption = "Analyse Maxi"
        .Function = xlMax
    End With

   End If
   Loop

End Sub
Rechercher des sujets similaires à "macro tableau croise dynamique successifs"