Ma macro enregistrée pour faire un TCD ne marche pas, comment la faire marcher ?

dungan

XLDnaute Nouveau
Tout est dans le titre :)

Je suis sous XP SP2 / Excel 2003
La situation :
Sur Feuil1 il y a les données sources sur 3 colonnes (date/Lang/TotalCount)
Je veux en faire un TCD qui me permette d'avoir un tableau à double entrée date / langue.

J'ai fait la manipulation à la main sous Excel en enregistrant la Macro, mais elle ne marche jamais (erreur 1004). J'ai beau refaire la manipulation, la macro enregistrée fait toujours un TCD uniquement avec TotalCount, sans même qu'apparaissent les autres champs dans la Liste de champs de TCD.

La macro enregistrée est la suivante :
Columns("A:C").Select
Range("C1").Activate
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Feuil1!C1:C3").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique7", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique7").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique7").PivotFields("TotalCount"), _
"Nombre de TotalCount", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields("Lang")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields("date")
.Orientation = xlColumnField
.Position = 1
End With
Range("A3").Select
ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields( _
"Nombre de TotalCount").Function = xlSum
With ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields("date")
.PivotItems("(vide)").Visible = False
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields("Lang")
.PivotItems("(vide)").Visible = False
End With
End Sub

Je met en pièce jointe le fichier Excel qui me pose un problème, avec l'onglet "TCD fait par la macro" et l'onglet "TCD Visé" auquel je souhaite arriver.

Je galère depuis un certain temps sur le sujet sans rien vraiment trouver qui résout mon problème, je pense que j'ai loupé qqch, mais quoi ?
 

Pièces jointes

  • TCD_Macro_2.zip
    21.4 KB · Affichages: 96
  • TCD_Macro_2.zip
    21.4 KB · Affichages: 69
  • TCD_Macro_2.zip
    21.4 KB · Affichages: 66
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Ma macro enregistrée pour faire un TCD ne marche pas, comment la faire marcher ?

Bonjour à tous,

Peux-tu essayer en remplaçant la partie en rouge par :

Code:
"Feuil1!A1:C5000"

A+

Edition : Bonjour Gael


Tout est dans le titre :)
Je suis sous XP SP2 / Excel 2003
La situation :
Sur Feuil1 il y a les données sources sur 3 colonnes (date/Lang/TotalCount)
Je veux en faire un TCD qui me permette d'avoir un tableau à double entrée date / langue.

J'ai fait la manipulation à la main sous Excel en enregistrant la Macro, mais elle ne marche jamais (erreur 1004). J'ai beau refaire la manipulation, la macro enregistrée fait toujours un TCD uniquement avec TotalCount, sans même qu'apparaissent les autres champs dans la Liste de champs de TCD.

La macro enregistrée est la suivante :
Columns("A:C").Select
Range("C1").Activate
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Feuil1!C1:C3").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique7", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique7").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique7").PivotFields("TotalCount"), _
"Nombre de TotalCount", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields("Lang")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields("date")
.Orientation = xlColumnField
.Position = 1
End With
Range("A3").Select
ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields( _
"Nombre de TotalCount").Function = xlSum
With ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields("date")
.PivotItems("(vide)").Visible = False
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields("Lang")
.PivotItems("(vide)").Visible = False
End With
End Sub

Je met en pièce jointe le fichier Excel qui me pose un problème, avec l'onglet "TCD fait par la macro" et l'onglet "TCD Visé" auquel je souhaite arriver.

Je galère depuis un certain temps sur le sujet sans rien vraiment trouver qui résout mon problème, je pense que j'ai loupé qqch, mais quoi ?
 
Dernière édition:

Gael

XLDnaute Barbatruc
Re : Ma macro enregistrée pour faire un TCD ne marche pas, comment la faire marcher ?

Bonjour Dungan, bonjour JCGL,

Comme JCGL, je te propose de remplacer "Feuil1!C1:C3" qui sélection 3 cellules et non 3 colonnes par:

Code:
"Feuil1!$A$1:$C$" & Range("C5000").End(xlUp).Row).CreatePivotTable

"Range("C5000").End(xlUp).Row" va donner le numéro de la dernière ligne utilisée. Ce qui fait que tu peux également supprimer la partie destinée à ne pas afficher les (Vide) puisqu'il n'y en aura plus:

A supprimer:
Code:
With ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields("date")
.PivotItems("(vide)").Visible = False
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique7").PivotFields("Lang")
.PivotItems("(vide)").Visible = False
End With

@+

Gael
 

Gael

XLDnaute Barbatruc
Re : Ma macro enregistrée pour faire un TCD ne marche pas, comment la faire marcher ?

Re,

Et même un peu plus simple:

Code:
    Range("C1").Select
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        [COLOR=navy]ActiveCell.CurrentRegion[/COLOR]).CreatePivotTable TableDestination:="", TableName:= _

et tu peux supprimer aussi la première ligne "Columns("A:C").Select" qui ne sert à rien.

@+

Gael
 

dungan

XLDnaute Nouveau
Re : Ma macro enregistrée pour faire un TCD ne marche pas, comment la faire marcher ?

Vu le temps que j'ai passé là-dessus, je n'aurais qu'une réponse : merci, merci beaucoup.

C'est tellement idiot, désolé de ne pas avoir vu l'erreur.

Bref, merci encore, ça m'enlève une sacré épine du pied :) :) :)

Figure de style à part,
 

dungan

XLDnaute Nouveau
Re : Ma macro enregistrée pour faire un TCD ne marche pas, comment la faire marcher ?

Vu le temps que j'ai passé là-dessus, je n'aurais qu'une réponse : merci, merci beaucoup.

C'est tellement idiot, désolé de ne pas avoir vu l'erreur.

Bref, merci encore, ça m'enlève une sacré épine du pied :) :) :)
 
Dernière édition:

CB60

XLDnaute Barbatruc
Re : Ma macro enregistrée pour faire un TCD ne marche pas, comment la faire marcher ?

Bonsoir
Voici ton exemple
 

Pièces jointes

  • TCD_Macro_2.zip
    26.7 KB · Affichages: 85
  • TCD_Macro_2.zip
    26.7 KB · Affichages: 89
  • TCD_Macro_2.zip
    26.7 KB · Affichages: 83

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 765
Membres
103 661
dernier inscrit
fcleves