Macro de création tableau croisé dynamique

Bonjour,

Merci par avance à ceux qui prendront le temps de lire le post.
Novice en programmation, j'ai besoin d'une macro pour créer un tableau croisé dynamique sous Excel d'un tableau basique comprenant le nom du client, le numéro de facture, le montant du et la personne responsable.
J'ai effectué un enregistrement avec l'assistant de création mais lorsque je souhaite ré exécuter ma macro, j'ai le message d'erreur ci-dessous et ce malgré le fait que j'ai supprimer au préalable la feuille crée.

Sub TableauCroise()
'
' TableauCroise Macro
'
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Tableau1", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Feuil5!L3C1", TableName:="Tableau croisé dynamique2", _
==> ligne du message d'erreur '5' DefaultVersion:=xlPivotTableVersion12
Sheets("Feuil5").Select
Cells(3, 1).Select

With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Client")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique2").PivotFields("Reste du"), _
"Somme de Reste du", xlSum
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"N°Facture")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Resp.")
.Orientation = xlPageField
.Position = 1
End With
Range("A4").Select
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Client"). _
ShowDetail = False
Sheets("Base").Select
End Sub

Si quelqu'un à une solution...

Bonne soirée.

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Il s'agit d'une version 2007. Je prépare le fichier pour vous le mettre à disposition.

    Encore merci de votre aide
    1. Contributeur
      Bonjour

      Ce problème est peut-être dû à l'exécution multiple de votre macro de création dans le classeur.
      Je vous propose de créer une feuille que vous momerez Tableau et sur laquelle vous ferez créer par la macro votre tableau.

      voici le début de cette macro

      ' efface_feuille Macro
      '

      '
      Sheets("tableau").Select
      Cells.Select
      Selection.Borders(xlDiagonalDown).LineStyle = xlNone
      Selection.Borders(xlDiagonalUp).LineStyle = xlNone
      Selection.Borders(xlEdgeLeft).LineStyle = xlNone
      Selection.Borders(xlEdgeTop).LineStyle = xlNone
      Selection.Borders(xlEdgeBottom).LineStyle = xlNone
      Selection.Borders(xlEdgeRight).LineStyle = xlNone
      Selection.Borders(xlInsideVertical).LineStyle = xlNone
      Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
      With Selection.Interior
      .Pattern = xlNone
      .TintAndShade = 0
      .PatternTintAndShade = 0
      End With
      Selection.ClearContents
      Range("A1").Select

      'création Tableau croisé

      Sheets("tableau").Select
      Cells(5, 1).Select
      ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
      "table_article!R28C1:R230C8", Version:=xlPivotTableVersion10). _
      CreatePivotTable TableDestination:="tableau!R5C1", TableName:= _
      "Tableau croisé dynamique2", defaultVersion:=xlPivotTableVersion10
      With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Client" _
      )
      .Orientation = xlRowField
      .Position = 1
      End With
      vous collerez ceci au début de votre macro actuelle et vous raccorderez à la ligne End With de client et après cela devrait fonctionner
      1. Contributeur
        RE:

        Noubliez pas de changer votre source remplacer "table_article R28C1:R230C8" ma table d'essai par votre source "Tableau1"
        1. Bonjour Philou.

          Y'a rien à faire, j'ai toujours le même message d'erreur sur cette partie du code.

          ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
          "table_article!R28C1:R230C8", Version:=xlPivotTableVersion10). _
          CreatePivotTable TableDestination:="tableau!R5C1", TableName:= _
          "Tableau croisé dynamique2", defaultVersion:=xlPivotTableVersion10

          je ne sais pas comment mettre un fichier joint au topic, ça aurait peut être permis de voir le soucis.

          Bonne journée
          1. Contributeur
            aller sur le site cjoint.fr etmettre votre fichier en allant dans l'arboressence du disque
            jusqu'au dossier ou se trouve le fichier et créer le lien avec le bouton puis copier ce lien aussi avec le bouton et coller le sur la case répondre de comment ça marche
            1. Contributeur
              qu'elle est votre version d'Excel je suis sous 2010