excel, les macros, et les TCD

J

julie

Guest
J'ai une macro à faire qui me générera un TCD; Je ne maitrise pas du tout le VB; et je ne voulais pas faire quelque chose de compliqué. Mon problème est le suivant, c'est quand j'enregistre ma macro, elle me ressort, pour la selection de ma base de données, une ligne du type :

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
'Mon_Fichier!R1C1:R9878C13').CreatePivotTable TableDestination:='', _
TableName:='Tableau croisé dynamique1', DefaultVersion:= _
xlPivotTableVersion10

çà se passe très bien quand ma base de données fait 9878 lignes et 13 colonnes, mais quand ma base grandit et qu'elle a plus de lignes ou plus de colonnes, il ne les prend pas en compte bien sûr.

Comment je peux dire dans ma macro, qu'il doit me prendre toutes les lignes et toutes les colonnes actives. Je ne rencontre ce problème qu'avec les TCD.

Merci de ma répondre.
 
B

bebere

Guest
bonjour Julie



insertion->nom->définir ex : MaTable
dans la fenêtre du haut entrer le nom que tu veux donner (MaTable)
dans la fenêtre du bas entrer la formule suivante
=DECALER($A$1;;;NBVAL($A:$A);NBVAL($A$1:$M$1))

a1 : début base de données
NBVAL($A:$A) : compte le nbre de lignes
NBVAL($A$1:$M$1 : compte le nbre de colonnes

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
'MaTable').CreatePivotTable TableDestination:='', _
TableName:='Tableau croisé dynamique1', DefaultVersion:= _
xlPivotTableVersion10

à bientôt
 
J

julie

Guest
Merci Bebere de t'être intéréssé à mon problème, j'ai suivi à la lette ce que tu m'as dit...et voilà le code qu'il m'a écrit au début de ma macro..Tout fonctionne bien quand ma Base va de A à M, mais quand je lui insére 1 colonne : Erreur 1004 et en déboguage, il ne trouve plus une colonne qui n'est plus en M mais en N...

Selection.CurrentRegion.Select
ActiveWorkbook.Names.Add Name:='dubost', RefersToR1C1:= _
'=OFFSET(VTPFROID030505DUBOST!R1C1,,,COUNTA(VTPFROID030505DUBOST!C1),COUNTA(VTPFROID030505DUBOST!R1C1:R1C13))'
ActiveWorkbook.Names.Add Name:='dubost', RefersToR1C1:= _
'=OFFSET(VTPFROID030505DUBOST!R1C1,,,COUNTA(VTPFROID030505DUBOST!C1),COUNTA(VTPFROID030505DUBOST!R1C1:R1C13))'
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:='dubost' _
).CreatePivotTable TableDestination:='', TableName:= _
'Tableau croisé dynamique1', DefaultVersion:=xlPivotTableVersion10

Si quelqu'un pouvait me résoudre mon ti problème..Merci
 

Statistiques des forums

Discussions
312 240
Messages
2 086 514
Membres
103 239
dernier inscrit
wari