TCD et VBA

Bashrog

XLDnaute Occasionnel
Bonjour, je continue à creuser les possibilités du VBA, mais je ne comprends toujours pas tout !!!

voilà, je récupère un fichier qui n'a pas toujours le même nom et le même nombre de ligne. Ce que je désire faire c'est créer un TCD de cette base de donnée. J'ai utilisé l'enregistreur de macro, mais je m’aperçois qu'il sélectionne mes données jusqu'à a ligne 833.

Je vous mets ci-dessous le code produit :

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Detail_des_ecritures_engagement!R1C1:R833C17", Version:= _
xlPivotTableVersion12).CreatePivotTable TableDestination:="Feuil1!R3C1", _
TableName:="Tableau croisé dynamique3", DefaultVersion:= _
xlPivotTableVersion12

Je continue mes investisgations.

Merci d'avance
 

chris

XLDnaute Barbatruc
Re : TCD et VBA

Bonjour

Si tu récupère de façon régulière le même fichier à exploiter de la même manière, il est plus simple de le stocker sous un même nom dans une arborescence de dossiers qui permet de situer sa période (exemple D:mesfichers\2016\05" de créer le ou les TCD basés sur ce fichier dans un autre classeur placé dans le même dossier.
TCD à baser sur les colonnes entières et non la plage dans ce cas.

Ainsi tous les TCD se mettent à jour sans avoir besoin de recommencer.

Dupliquer chaque mois (ou autre périodicité) le classeur d'analyse dans le dossier où on a placé l'autre.
 

Bashrog

XLDnaute Occasionnel
Re : TCD et VBA

En fait, j'ai remarqué que c'était le nom de l'onglet qui ne devait pas changer. Mais ça ne devrait pas poser de problème. Ensuite, je crois comprendre que c'est là :

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Detail_des_ecritures_engagement!R1C1:R822C15"

que vient le problème. L'enregistreur de macro, lors de la première exécution, a du aller chercher les données de la ligne 1, colonne 1 (R1C1) jusque la ligne 822 colonne 15 (R822C15), et c'est précisément ça que je voudrais changer, mais je n'arrive pas à trouver le code à remplacer
 

Bashrog

XLDnaute Occasionnel
Re : TCD et VBA

Bon, je suis allé un peu trop vite.

A la base, je réalise plein de TCD que je suis obligé de manipuler à la main, pour mettre en forme, changer les couleurs, ... Je me suis dit qu'une macro pourrait faire ça très bien, mais comme je le disais, le nom du fichier varie, le nombre de ligne varie et le nom de l'onglet varie.

J'utilisais ce code la (pour le début des manipulations) :

Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Balance_annuelle_conforme_au_so!R1C1:R1048576C19", Version:= _
xlPivotTableVersion12).CreatePivotTable TableDestination:="Feuil1!R3C1", _
TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion12
Sheets("Feuil1").Select
Cells(3, 1).Select

Mais cela ne fonctionne pas si le nom de l'onglet n'est pas :"Balance_annuelle_conforme_au_so!R1C1:R1048576C19". Je croyais avoir trouver un truc, mais ça ne fonctionne pas.

Donc est ce qu'il est possible de créer un code en vba pour créer un TCD quelque-soit le nom du fichier, le nom de l'onglet et le nombre de colonne/ligne du tableau source?

Merci
 

Bashrog

XLDnaute Occasionnel
Re : TCD et VBA

J'ai finalement trouvé une solution, qui vaut ce qu'elle vaut.
En fait, je triche en renommant automatiquement l'onglet sur lequel je veux faire un TCD (ActiveSheet.Name = "data") et ensuite je demande à faire un TCD sur l'onglet s'appelant "data".
 

Discussions similaires

Réponses
1
Affichages
527