Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Tableau croisé dynamique avec Source qui varie

louisavice

XLDnaute Nouveau
Bonjour,

Je suis nouveau sur le forum et merci beaucoup pour tout ce que j'ai déjà lu sur excel downloads. J'ai un problème en vba, je cherche à créer chaque semaine un tableau croisé dynamique. Sachant que la source des données est sur une page différente chaque mois (la page "1" pour janvier, "2" pour février etc...). Je débute en vba donc j'ai du mal... Voila le code que j'ai rentré :

' Lorsque le mois change il faut remplacer le 1 par le nouveau numéro de mois dans SourceData
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"7!R6C1:R10000C35", Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:="Annexe!R1C1", TableName:=NOMDUGRAPHE, _
DefaultVersion:=xlPivotTableVersion15

Je dispose du mois dans une variable qui est rentrée par l'utilisateur, mais lorsque je la met en argument de de "SourceData", ça plante du coup j'ai essayé avec cette technique :

ActiveChart.SetSourceData Source:=Sheets(NUMEROMOIS).Range(Sheets(NUMEROMOIS).Cells(6, 1), Sheets(NUMEROMOIS).Cells(10000, 35))

Mais je n'y arrive pas non plus avec cette technique.

Sachant que je prends 10000 lignes parce que je ne sais pas trouver la dimension de mon tableau (qui n'est pas un tableau au vrai sens du terme et ça je n'ai pas le choix).

Bref, voila voila, merci beaucoup

Louis
 

chris

XLDnaute Barbatruc
Bonjour

Tu as plein d'exemples de codes pour le calcul de la plage : par exemple
Worksheets(NUMEROMOIS).Range("A6").CurrentRegion

Code:
Set maplage = Worksheets(NUMEROMOIS).Range("A6").CurrentRegion
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=maplage, ......

Ta question n'est pas tout à fait cohérente :
"je cherche à créer chaque semaine un tableau croisé dynamique"
"Lorsque le mois change il faut remplacer le 1 par le nouveau numéro de mois"

Si tu places ton TCD toujours dans la même cellule de la même feuille cela ne va pas marcher...
 

louisavice

XLDnaute Nouveau
Merci beaucoup pour ta réponse.
Oui désolé je n'ai pas été très clair. En fait chaque semaine, le nombre de ligne de mon tableau augmente mais la feuille contenant ce tableau reste la même, la semaine n'est utilisé que dans un autre endroit.

C'est chaque mois que la feuille change. Par ailleurs j'ai une feuille dédiée "Annexe" (qui est unique et fixe) où le TCD va être créé, une autre qui va se créer à chaque exécution de la macro et dont le nom est rentré par l'utilisateur et où le TCD sera recopié avec une petite modification, puis une fois que j'ai ce que je souhaite sur la feuille qui vient d'être crée, je supprime le TCD de "Annexe" pour que lors de la prochaine exécution ça ne plante pas.

Pour la solution que tu proposes je n'y avait pas pensé mais malheureusement la Currentregion comprend aussi les lignes 1 à 5 qui contiennent pleins de choses (ce n'est pas moi qui crée le tableau je suis le petit stagiaire qui essaie de le traiter).

Du coup j'ai essayé ca :
VB:
Range("A6").Select
Range(Selection, Selection.End(xlToRight)).Select
Set maplage = Worksheets(NUMEROMOIS).Range(Selection, Selection.End(xlDown))
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        maplage...

mais ça plante à la ligne ActiveWorkbook...

Louis
 
Dernière édition:

louisavice

XLDnaute Nouveau
Re re

J'ai du faire une autre erreur, car quand je rentre ça :
Code:
Set maplage = Worksheets(NUMEROMOIS).Range("A6").CurrentRegion
Set maplage = maplage.Offset(5, 0).Resize(maplage.Rows.Count - 5, maplage.Columns.Count)    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=maplage, Version:=xlPivotTableVersion15).CreatePivotTable _
        TableDestination:="Annexe!R1C1", TableName:=NOMDUGRAPHE, _
        DefaultVersion:=xlPivotTableVersion15

il me dit : "erreur 1004 erreur definie par l'application ou par l'objet"

l'erreur vient d'ailleurs du coup?

EDIT : quand je selectionne Maplage c'est pile parfait la bonne plage
 

Discussions similaires

Réponses
2
Affichages
481
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…