J'ai un modèle Excel dont l'élément principal est un seul grand tableau structuré contenant environ 2000 colonnes et 200 lignes. Chaque colonne contient une formule identique pour chaque ligne. En tant que fichier XLSB, le classeur fait environ 11 Mo et s'ouvre en 45 secondes. Les formules elles-mêmes sont efficaces - un calcul complet du classeur est effectué en moins d'une seconde.
Si je scinde ce modèle en deux, en utilisant deux feuilles distinctes dans le même classeur (avec des références entre elles), les performances ne changent pas. Toutefois, lorsque je scinde ces feuilles en deux classeurs, avec les liens comme références externes, je peux ouvrir les deux fichiers et actualiser les liens en 10 secondes environ.
Pourquoi des classeurs séparés amélioreraient-ils les performances? La même performance peut-elle être obtenue dans un seul classeur?
EDIT: les classeurs assainis peuvent être trouvés ici: https://drive.google.com/drive/folders/0Bz0YVEO1u0jOaGtpS1ZnR3kzRWc?usp=sharing Model1.xlsb et Model2.xlsb sont les fichiers divisés. Pour créer Model1and2.xlsb, je n'ai fait que déplacer les deux feuilles de Model2 vers Model1.
EDIT 2: Setting Workbook.ForceFullCalculation=TRUE
résout ce problème. Cela a certainement quelque chose à voir avec le temps de charger l'arbre de dépendance. J'ai ajouté Model1and2-ForceFullCalculation.xlsb au dossier partagé pour illustrer.