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

Excel perd les pédales

  • Initiateur de la discussion Initiateur de la discussion ltsv38
  • 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 !

ltsv38

XLDnaute Nouveau
Bonjour

J'ai réalisé un gros classeur Excel (V2003) : une dizaine de feuilles, quelques dizaines de milliers de cellules à calculer, plusieurs graphiques, des milliers de lignes de code VBA.
En temps normal le recalcul complet de ce classeur prend environ 3 minutes sur un P4.

Par moment Excel perd les pédales : comme beaucoup de cellules font appel à d'autres cellules, il semble ne pas arriver à trouver l'ordre optimal de calcul de ces cellules.
La conséquence est qu'il essaye de calculer une cellule faisant appel à une autre cellule qui n'est pas encore rafraichie ... il affiche donc partout des #VALEUR# et boucle en permanence dans les codes de macros.

Pour le remettre sur les rails il faut :
- Cellule par cellule retaper la formule existante (F2 + Return) : il n'y a jamais de problème de calcul à ce niveau
- Le faire pour les quelques milliers de cellules en erreur (une heure de saisie ...)
- Espérer qu'à ce moment il se remette sur les rails sinon on peut recommencer plusieurs fois !

L'un d'entre vous a t'il déjà rencontré ce type de problème et surtout découvert une parade ?

Merci

Pierre
 
Re : Excel perd les pédales

Merci Gorfael

J'ai remplacé tous les appels à la fonction "calculate" de mon code par des appels à la procédure suivante :
Code:
Sub LanceCalcul()
  Dim PlageACalculer As String
  Dim NumPlage As Integer
  Const PlageMax = 14           'Numéro de la dernière plage spécifique
  
    'Calcul prioritaire des "plages sensibles" dans le "bon ordre"
    For NumPlage = 1 To PlageMax
        PlageACalculer = "_Calcul" & NumPlage
        Sheets("Feuille principale").Range(PlageACalculer).Calculate
    Next NumPlage
    
    'On essaye maintenant de calculer tout le reste ...
    Calculate
End Sub
Le résultat est concluant : je n'ai plus de blocages même s'il reste des optimisations à faire pour ne pas trop multiplier les calculs des mêmes plages et donc le temps total de traitement ...

Merci encore à tous et à toutes !
Pierre
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Classeur Disparu
Réponses
2
Affichages
570
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…