Macro Pivot Table simple Excel 2011 (mac)

Bonjour à tous,

Je viens de commencer les macros sur excel, et je dois avouer que je bloque sur un problème qui doit être très simple en réalité.

J'ai deux colonnes, et je souhaite faire un Nb Val pour ma première colonne.

Manuellement c'est ce qu'il y a de plus simple au monde.

A chaque fois que j'exécute la macro ci-dessous, excel bloque en erreur 5 sur la ligne

DefaultVersion:=xlPivotTableVersion14

Quand je la supprime, je retrouve une erreur 5 sur la ligne du dessus changé comme ça :

TableDestination:="Feuil4!L3C1", TableName:="Tableau croisé dynamique9"

Quelqu'un pourrait-il m'aider?

Est-ce que cela provient de mac?

Merci d'avance !

Adrien

Sub Macro12()

'

' Macro12 Macro

'

'

Range("A1:B7").Select

Sheets.Add

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _

"Feuil1!L1C1:L7C2", Version:=xlPivotTableVersion14).CreatePivotTable _

TableDestination:="Feuil4!L3C1", TableName:="Tableau croisé dynamique9", _

DefaultVersion:=xlPivotTableVersion14

Sheets("Feuil4").Select

Cells(3, 1).Select

With ActiveSheet.PivotTables("Tableau croisé dynamique9").PivotFields("sku_s")

.Orientation = xlRowField

.Position = 2

End With

ActiveSheet.PivotTables("Tableau croisé dynamique9").AddDataField ActiveSheet. _

PivotTables("Tableau croisé dynamique9").PivotFields("unique_name"), _

"Somme sur unique_name", xlSum

Range("A3").Select

ExecuteExcel4Macro _

"PIVOT.FIELD.PROPERTIES(""Tableau croisé dynamique9"",""Somme sur unique_name"",,,4)"

End Sub

Bonjour,

Cela n'a rien avoir avec ton MAC

Tu peux aussi supprimer l'instruction --> DefaultVersion:=xlPivotTableVersion14

Je pense toutefois que ton souci vient plus du code qui est généré par l'enregistreur automatique d'excel et qu'il faut adapter.

Exemple si le nom que tu attribues au TCD (Tabelau croisé.... 9) est déjà pris dans ton fichier, cela vba bugguer.

Avec les TCD il est toujours mieux d'avoir un fichier mais essaie toutefois ce genre de code

Sub Macro12()
Range("A1:B7").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
    SourceData:="Feuil1!L1C1:L7C2", Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:=ActiveSheet, _
    TableName:="TCD" & ActiveSheet.Name
'Sheets("Feuil4").Select
'Cells(3, 1).Select
With ActiveSheet.PivotTables("TCD" & ActiveSheet.Name)
    .PivotFields("sku_s").Orientation = xlRowField
    .PivotFields("sku_s").Position = 2
    .AddDataField ActiveSheet.PivotTables("TCD" & ActiveSheet.Name).PivotFields("unique_name"), "Somme sur unique_name", xlSum
Range("A3").Select
ExecuteExcel4Macro _
"PIVOT.FIELD.PROPERTIES(""TCD & ActiveSheet.Name"",""Somme sur unique_name"",,,4)"
End Sub

Si pas ok, mets ton fichier en ligne sans données confidentielles

Amicalement

Merci pour la réponse.

Malheureusement, cela n'a pas fonctionné.

J'ai fait quelques modifs de la macro pour l'adapter au nouveau doc.

J'ai attaché le fichier.

Sub Macro12()

Range("A1:B7").Select

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _

SourceData:="Feuil1!L1C1:L7C2", Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:="Feuil4", _

TableName:="TCD"

'Sheets("Feuil4").Select

'Cells(3, 1).Select

With ActiveSheet.PivotTables("TCD" & ActiveSheet.Name)

.PivotFields("sku_s").Orientation = xlRowField

.PivotFields("sku_s").Position = 2

.AddDataField ActiveSheet.PivotTables("TCD" & ActiveSheet.Name).PivotFields("unique_name"), "Somme sur unique_name", xlSum

Range("A3").Select

ExecuteExcel4Macro _

"PIVOT.FIELD.PROPERTIES(""TCD & ActiveSheet.Name"",""Somme sur unique_name"",,,4)"

End With

End Sub

493pivottable.xlsm (46.18 Ko)

Re,

Essaie comme ceci plutôt

Sub TCD()
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
    SourceData:=Sheets("Feuil1").Range("items_85")).CreatePivotTable _
        TableDestination:=ActiveSheet.Range("A3"), _
        TableName:="TCD"
With ActiveSheet.PivotTables("TCD")
    .PivotFields("sku_s").Orientation = xlRowField
    .AddDataField ActiveSheet.PivotTables("TCD").PivotFields("unique_name"), "Somme sur unique_name", xlSum
ExecuteExcel4Macro "PIVOT.FIELD.PROPERTIES(""TCD"",""Somme sur unique_name"",,,4)"
End With
End Sub

Pour le code, j'ai utilisé le nom que tu as attribué à la page en feuille 1.

Si ok, clique sur le v evrt à coté du bouton EDITER pour cloturer le fil

Petite remarque, lorsque tu postes un code sur le forum, utilise les balises prévues. Pour ce faire, sélectionne ton code puis clique sur le bouton "code".

Amicalement

Nice !!!! Ca marche.

Merci beaucoup.

C'est noté pour la remarque !

Un dernier point.

A quoi correspond le Range("items_85")) ?

Comment étendre le range sur les colonnes A et B? car la taille des colonnes est variable.

re,

A quoi correspond le Range("items_85")) ?

Il correspond au nom que tu as donné à cette plage par Formule -> Definir un nom

Pour le faire varier automatique, retourne dans Formule -> gestionnaire de nom et clique sur le bouton "Modifier"

Dans "ref à", remplace ta formule par celle ci-dessous -> =DECALER(Feuil1!$A$1;;;NBVAL(Feuil1!$A:$A);2)

Confirme en cliquant sur la case à cocher "V"

Si ok, lors de ta réponse n'oublie pas de cloturer le fil en cliquant sur le V vert à coté du bouton EDITER

Amicalement

Merci tout marche parfaitement !

Rechercher des sujets similaires à "macro pivot table simple 2011 mac"