"Alléger" un tableau

  • Initiateur de la discussion FRED.G
  • Date de début
F

FRED.G

Guest
Bonjour à tous !

Je suis nouveau sur le forum et sur excel mais je suis un habitué d'Access et de VBA, donc je ne pars pas tout à fait de zéro... ;o)

Mon problème est le suivant :

j'ai créé un tableau d'une quarantaine de colonnes pour 7680 lignes. Heureusement j'ai un bon PC donc les calculs de mise à jour du tableau sont < 2 sec.
Je précise au passage que je travail sous XP avec Office Developper.
J'aimerais avoir quelques conseils pour "alléger" mon tableau, car je me retrouve avec un fichier .xls de plus de 43 mo... pour ce seul tableau !

Les cellules du tableau utilisent toutes une fonction SI() parfois 2 voir 3 grand max.
Les cellules du tableau sont dépendantes en majorité d'autres cellules du tableau, sinon de cellules de la même feuille de calcul.
Mon tableau n'utilise que des valeur numériques type (Byte, Long ou Double).
J'utilise des scénarios qui modifent 3 variables sur lesquelles est fondé le tableau.
Le nb de lignes et de colonnes réellement utiles pour l'execution de chaque scénario est prévisible en fonction de la valeur des 3 variables qui définissent le scénario...
Le nb de lignes utiles peut aller de 1 à 7680, et de 12 à 40 pour les colonnes...

Je me demande donc s'il ne vaut pas mieux, plutôt que d'utiliser des scénarios et avoir très souvent des milliers de lignes qui exécutent un calcul pour rien et ralentissent le processus, je me demande plutôt s'il ne vaut pas mieux reconstruire à chaque fois un nouveau tableau sur mesure, de taille adaptée, en utilisant vba.
Ceci est envisageable car toutes les lignes, pour ce qui est des formules de leur cellules, sont identiques.
Les "décalages" concernant les dépendances relatives sont toujours les mêmes... Ainsi lorsque je veux agrandir manuellement mon tableau, il suffit de copier n'importe quelle ligne puis de la coller en fin de tableau ou de l'insérer n'importe où...

Je saurais comment faire sous vba pour construire un nouveau tableau à chaque fois...

Mais peut-être que je pourrais me contenter d'automatiser les opérations "supprimer", "copier/coller" concernant les lignes/colonnes de tableau qui m'intéressent (pas)... Dans ce cas vers quels objets/méthode puis-je me tourner sous vba ?


J'espère que je vous ai correctement fait part de mon "petit" pb de "grand" tableau...

Merci d'avance pour vos remarques ou vos conseils avertis. :eek:)
 
C

chris

Guest
Bonjour
Sans être spécialiste du "moteur" Excel, pour autant que je sache Excel optimise déjà : il tient compte des dépendances et ne recalcule pas tout mais seulement les cellules impactées par le changement lors de l'ajout ou la modif de valeurs.
Cela est fait en partant d'un langage compilé tandis que VBA n'est qu'interprété : je ne pense donc pas que ty y gagnerais à reprogrammer le fonctionnement naturel.
Mais il y a quelques spécialistes du code sur le forum qui te répondront sans doute.

Chris
 
F

FRED.G

Guest
Ok, merci pour ta réponse. Mais en fait, je ne souhaite pas "reprogrammer le fonctionnement naturel", juste reconstruire le tableau avec le bon nb de lignes et de colonnes...
Car en effet comme tu le dis : Excel "tient compte des dépendances et ne recalcule pas tout mais seulement les cellules impactées par le changement lors de l'ajout ou la modif de valeurs".
Or dans mon tableau, chaque ligne fait référence à la précédente... Donc lorsque je modifie mes valeurs sources, c'est tout le tableau qui est impacté. Et si je n'avais besoin que du résultat par exemple des 110 premières lignes et des 24 premières colonnes, alors tout le reste (des milliers de lignes et des dizaines de colonnes) affiche quand même un résultat mais "pour rien."

En conséquence, il me paraît indispensable "d'ajuster" la taille de mon tableau à chaque fois. Et là je crois qu'il faut passer par vba...

En tout cas ta réponse est intéressante car je m'étais aussi demandé si les feuille de cacul servait à quelque chose dans mon cas : je veux dire par là que j'aurais très bien pu utiliser une feuillle de calcul et des cellules "virtuelles" directement et uniquement sous vba. Car voir le tableau à l'écran ne me sert pas à grand chose puisque de toute façon, c'est du code vba qui analyse les résultats et me fait un rapport pour chaque combinaison possible de mes 3 variables de départ.
Apparament d'après ce que tu me dis, il n'est pas utile de travailler uniquement sous vba et de se priver d'une "vraie" feuille de calcul à l'écran...

Reste qu'il faut quand même que je trouve le meilleur moyen pour changer la taille du tableau... je pense t'avoir expliqué pourquoi.
Je rappelle que je peux connaître à l'avance le nb de lignes et colonnes nécessaires à mon tableau et celle-ci sont toujours les n premières colonnes ou x premières lignes.
 

Discussions similaires

Réponses
2
Affichages
206

Statistiques des forums

Discussions
312 336
Messages
2 087 389
Membres
103 534
dernier inscrit
Kalamymustapha