Macro de création tableau croisé dynamique

Fermé
Geekette_en_herbe Messages postés 2 Date d'inscription mardi 24 avril 2012 Statut Membre Dernière intervention 25 avril 2012 - 24 avril 2012 à 20:32
Geekette_en_herbe Messages postés 2 Date d'inscription mardi 24 avril 2012 Statut Membre Dernière intervention 25 avril 2012 - 25 avril 2012 à 16:55
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

Geekette_en_herbe Messages postés 2 Date d'inscription mardi 24 avril 2012 Statut Membre Dernière intervention 25 avril 2012 2
25 avril 2012 à 16:55
Il s'agit d'une version 2007. Je prépare le fichier pour vous le mettre à disposition.

Encore merci de votre aide
3
PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
25 avril 2012 à 11:44
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
0
PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
25 avril 2012 à 12:37
RE:

Noubliez pas de changer votre source remplacer "table_article R28C1:R230C8" ma table d'essai par votre source "Tableau1"
0
Geekette_en_herbe
25 avril 2012 à 12:48
Merci je vais essayer.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Geekette_en_herbe
25 avril 2012 à 14:34
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
0
PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
25 avril 2012 à 14:52
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
0
PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
25 avril 2012 à 14:55
qu'elle est votre version d'Excel je suis sous 2010
0