Màj de Tab Croisé Dyn trop long

A

Abdoul

Guest
Bonjour,

J'ai mis en place 3 TCD (dans un même classeur) qui tape la même source(feuille excel dans le même classeur).

Puis par VBA je mets à jour ces 3 TCD après avoir modifier la source (à peu près 4500 enregistrement sur 5 colonnes). Et là, la màj des 3 tcd prend 15 mn !!! et je ne sais pas comment faire.

Pour rafraichir mon TCD j'utilise l'instruction
"ActiveSheet.PivotTables("Mon_Tab_Croisé_Dyn").RefreshTable"

Il est également possible d'utiliser cette méthode ==>
ActiveSheet.PivotTables("Mon_Tab_Croisé_Dyn").PivotCache.Refresh"

Qq'un pourrait-il me dire la différence entre ces 2 méthodes ?
J'ai Excel XP.

Merci pour votre aide.
Très amicalement,
Abdoul
 
D

Dan

Guest
Abdoul,

Merci de rester sur le même post lorsque tu places une question sinon on ne te suivra plus !
Merci aussi de lire la charte de XLD.

1. Réponse partielle à ta question dans le post <http://www.excel-downloads.com/html/French/forum/messages/1_56680_56680.htm>

2. Avec 4500 lignes je pense que tu as peut-être beaucoup de données.
Lorsque tu crées un 2ème TCD dans le même classeur, Excel te demande si tu souhaites utiliser les données utilisées lors de la création du 1er TCD. Il faut utiliser cette option, cela permet de gagner en rapidité. de Même pour un 3ème TCD.
Te rappelles - tu avoir répondu affirmativement à la question posée par Excel ?

@+

Dan
 
A

Abdoul

Guest
Bonjour Dan,

Je te remercie pour la constance avec laquelle tu réponds à la plupart de mes posts.

Pour répondre à ta question, Excel ne te pose pas la question ("Le nouveau TCD utilise-t-il les données du précédent TCD ?") quand on crée un nouveau tcd par VBA. En fait je crée des tcd à la demande de l'utilisateur (via une inputbox).
Idéalement il faidrait indiquer par VBA qu'il s'agit à chaque fois de la même source de données, ce que je ne sais pas faire.


Voilà Dan, l'état de mes cogitations sur la question.

Bonne Journée !

Abdoul

PS : Sur ta demande je viens de lire la Charte XLD qui est fort bien rédigée.
Si j'ai contrevenu au paragraphe 2c de la charte, je te prie de m'excuser.
 
D

Dan

Guest
Bonsoir,

Je comprends car cette demande d'excel ne s'effectue pas si le TCD est cnstitué via une macro.

Ce que tu peux faire, c'est nommer ta base de données.
Pour ce faire tu sélectionnes la base de données qui sert à réaliser le Tcd puis via menu/insertion/nom/définir tu lui donnes un nom (rubrique "nom dans le classeur")-par exemple : database.
Dès que cela est fait, tu vas dans VBA et tu remplaces la plage de données qui sert à la constitution du Tcd par le nom (ici database) que tu as choisit.
Ainsi la macro utilisera chaque fois la database pour faire le ou les Tcd.

Une remarque cependant : si tu ajoutes des données dans la database, veille bien à insérer ces nouvelles données dans la database existante et nom après la dernière ligne car dans ce cas le ou les tcd ne reprendraient plus tous les résultats.

Si pb, je te suggère de placer un fichier (zippé ! please) avec ta réponse. cela permettra de mieux t'aider.

A bientôt

@+

Dan
 
A

Abdoul

Guest
Salut Dan,
Encore une fois merci pour ta réponse.

Je fais déjà tout ce que tu viens de décrire. C'est excatement le mécanisme que j'ai mis en place (déclaration de nom de plage, màj de la source, rafraichissement du nom de plage etc ...) ...

Tout se passe très bien sauf le temps (environ 15 mn pour màj 3 tcd qui tapent la même source (=environ 4500 enregistrements sur 5/6 colonnes).

Maheuresement je crains que mon pb n'ait pas de solution actuellement, car même si je fais à la main mes 3 tcd et que je les actualise, Excel prend également 15 mn pour la màj (même si lors de la création, j'indique à Excel que mes tcd tapent la même source).
En fait, Dan, le fait d'indiquer à Excel que les tcd tapent la même source sert uniquement à gérer la mémoire cache associée à chaque tcd (les tcd partageant la même mémoire cache) mais cela n'affecte en rien le temps de calcul des tcd (Excel est obligé de faire autant de fois les calculs qu'il y a de tcd).

Je ne peux maheuresement pas t'envoyer mon fichier zippé (car taille des 3 fichiers > à 12 mo) et surtout tu perdrais bcp de temps à essayer de comprendre "fonctionnellement", car il s'agit d'un fichier de recouvrement comptable.


Voilà, voilà.
Bonne Journée !

Abdoul
 
D

Dan

Guest
Salut Abdoul,

Merci de ta réponse.
Au vu de ce que tu écris, je me demande si le pb de lenteur ne viens du nombre de records que tu as encodés. Car 4500 enregistrements à traiter c'est peut-être beaucoup d'autant que si tu as plusieurs colonnes impliquées dans chaque TCD, il se peut qu'excel ai du mal à digérer cela.

Petite indication supplémentaire, vieille aussi :
1. à travailler le plus verticalement possible plutôt qu'en largeur sur tes feuilles
2. à minimiser le nombre de cellules ayant des couleurs si c'est le cas.
3. A attribuer des noms aux formules éventuelles plutôt que de les répéter à chaque cellule.

Voilà.

Bon WE

@+

Dan
 
J

Jean-Marie

Guest
Bonsoir tout le monde

Simplement pour dire que je ne suis pas d'accord avec le 3ème point, à chaque changement de sélection de cellule la feuille est recalculée, pas si la formule n'est pas nommée.

@+Jean-Marie
 
D

Dan

Guest
Bonjour Jean Marie, Abdoul,

Jean Marie, je ne comprends pas ce que tu veux dire.

D'accord avec toi sur le recalcul de la formule mais si on attribue un nom dans une cellule (via menu/insertion/nom) et que l'on utilise ce nom dans la cellule plutôt que d'y écrire la formule, Excel va beaucoup plus vite et cela prend moins de ressources pour effectuer l'opération.
D'autant plus vite si cette formule doit être répétée dans plusieurs centaines ou milliers de cellules.
Cette approche est conseillée même par Microsoft.

@+

Dan
 
J

Jean-Marie

Guest
Bonsoir, tout le monde

Je n'ai pas retrouvé le lien sur le forum ou dans ma bal, pour étayer mes propos.

Mais à chaque fois que j'utilisais les touches de déplacement, les documents étaient recalculés, et en ayant remplacer le nom de la formule dans la cellule, par la formule, le problème a disparu.

@+Jean-Marie
 
A

Abdoul

Guest
Bonjour Dan et Jean-Marie,

Merci bcp pour vos conseils. Bien que j'utilise des noms dans mes formules, le temps calcul des tcd est quand même long (j'avoue que j'utilise bcp de formats couleurs dans les cellules résultats de mon tcd).

Voilà, merci pour votre aide et bonne journée à vous !

Abdoul
 

Statistiques des forums

Discussions
312 755
Messages
2 091 708
Membres
105 053
dernier inscrit
HAMOUD