problème avec poids de fichier et utilisation (TCD) des données classeur fermé

erics83

XLDnaute Impliqué
Bonjour,

J'ai un fichier ("Base") contenant des données jusqu'à AK413730, il "pèse" 150 Mo.
A partir de ces données, je fais différents TCD d'exploitation de ces données.
Le problème c'est le temps d'ouverture....très/trop long....normal avec 150 Mo...pour info, j'ai nommé "TCD" la plage A1:AK413730 pour la lecture des TCD.

J'ai donc essayé différentes solutions :
*Prendre un fichier (léger), mettre une macro qui importerait via ADO les données du fichier fermé.et faire ensuite les TCD...mais j'ai le même timing....
*Prendre un fichier, mettre les TCD liés (il "pèse" 50 Mo avec les TCD), mais lorsque je change un champ du TCD, idem, il met une plombe pour la mise à jour des données.
*Prendre un fichier et faire un lien avec mon Fichier "Base" en utilisant " =C:/Base!A1" et recopier jusqu'à AK413730 : là, lorsque "Base" est ouvert, c'est très rapide, mais lorsqu'il est fermé, toujours le timing de ouf...
*Utiliser le code "Liaison Classeur" de JB, idem timing très/trop long...

Donc je souhaitais savoir s'il existait éventuellement une autre méthode.....

Merci pour votre aide et/ou pistes....

(et Bonne et heureuse année au Forum et leurs membres...)
A+
 
Dernière édition:

erics83

XLDnaute Impliqué
Bonjour et merci chris,

Excel 2010
Les données sont des données que j'ai tous les mois (depuis janvier 2010, d'où le nombre...) je les copie-colle...pas de format particulier...des codes postaux, des adresses, des noms de ville...

Merci pour ton aide,
 
Dernière édition:

erics83

XLDnaute Impliqué
Bonjour,
Puisque c'est un fichier qui est alimenté tous les mois, avec la même structure, j'ai aussi essayé de créer un dossier où j'ai mis tous les fichiers par mois (qui sont donc plus léger) et de faire une boucle sur ces fichiers et qui compile au fur et à mesure, mais....idem, le temps d'ouverture/compilation/fermeture est très/trop long....
Merci pour votre aide et/ou pistes...
 

chris

XLDnaute Barbatruc
Bonjour

La volumétrie est importante : 15 000 000 de cellules dans la source.

Néanmoins il est peut-être possible d'alléger : supprimer toutes mises en forme (hors format de date) et remplacer les formules par leur résultat. Mais c'est sans doute ce que tu obtiens avec un import ADO.

Tester pour vérifier chacune de ces autres solutions :
  • stockage des données dans Access ou autre SGBD puis utilisation de la table par les TCD
  • une requête PowerQuery (add on MS gratuit) sur ton fichier Base, apuré comme décrit, en utilisant une requête sans renvoi des données dans un onglet puis utilisation de cette requête comme source des TCD
  • une requête PowerPivot (add on MS gratuit) sur ton fichier base apuré comme décrit (plus lourd car oblige à refaire les TCD pour tester)
Pour les TCD :
36 colonnes : n'aurais-tu pas un tableau à double entrée ?
Cela n'alourdit pas la source mais le cube des TCD.
Vérifier aussi que tous les TCD partagent un cube unique.
 

eriiic

XLDnaute Barbatruc
Bonjour,

dans les propriétés du TCD onglet Données décoche 'Enregistrer les données sources avec le fichier', il sera moins lourd.
Maintenant il faut le temps de le charger un fichier aussi énorme.
As-tu assez de mémoire pour ne pas te retrouver sur la mémoire virtuelle (extension sur le disque dur) ? Tout devient d'une lenteur terrible dans ce cas.
eric
 

cp4

XLDnaute Barbatruc
Erics83, Eriiiic, Chris, bonjour:)

En complément des conseils de erics83 et chris, avec excel 2010 tu peux enregistrer ton fichier au format 'xlsb'. il sera moins lourd mais je pense que le temps de chargement sera identique.

bon week-end;)
 

chris

XLDnaute Barbatruc
RE
Bonjour,

dans les propriétés du TCD onglet Données décoche 'Enregistrer les données sources avec le fichier', il sera moins lourd.
Maintenant il faut le temps de le charger un fichier aussi énorme.
As-tu assez de mémoire pour ne pas te retrouver sur la mémoire virtuelle (extension sur le disque dur) ? Tout devient d'une lenteur terrible dans ce cas.
eric
Le souci n'étant pas tant, semble-t-il, le classeur de TCD mais le temps de chargement de la source, je crains que cela soit pire car entre 2 mises à jours il n'est pas utile de recharger si on ne coche pas cette case...

Bon week end.
 

erics83

XLDnaute Impliqué
Merci chris,
Merci eriiiic,
Merci cp4,

Effectivement, c'est la lourdeur du fichier "Base" qui pose le plus de problèmes : certes les TCD lors de la MAJ mettent un peu de temps (< 2secondes....lol), mais c'est surtout le poid du fichier de base qui pose problème...
J'ai donc essayé de suivre les pistes de chris et j'ai pu compacter mon ficiher "Base" en enlevant certaines colonnes mois indispensables pour le calcul de mes TCD. Ainsi je me retrouve avec un fichier moins lourd (A1 : P413730) pesant 31 Mo. Il est toujours lent à l'ouverture, mais c'est déjà mieux...chris, effectivement j'avais déjà joué sur la simplification des formats (l'importation ADO l'avait automatiquement fait).

Je continue de chercher pour voir si je peux encore optimiser la méthode, par contre je n'ai pas compris
  • une requête PowerQuery (add on MS gratuit) sur ton fichier Base, apuré comme décrit, en utilisant une requête sans renvoi des données dans un onglet puis utilisation de cette requête comme source des TCD
  • une requête PowerPivot (add on MS gratuit) sur ton fichier base apuré comme décrit (plus lourd car oblige à refaire les TCD pour tester)
Merci pour votre aide,
 

Discussions similaires

Réponses
1
Affichages
259