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

Màj de Tab Croisé Dyn trop long

  • Initiateur de la discussion Initiateur de la discussion Abdoul
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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.
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…