Calcul automatique ne calcul plus

T

Trompette83

Guest
Bonsoir à toutes et à tous,

Dans mon dossier, j'ai plusieurs feuilles. La feuille 1 comporte un tableau à remplir, des listes validation (avec les 3 tables permettant de n'avoir que les items sans blanc suivant les formules de Monique), et de nombreuses formules nommées.
Dans la feuille 2 des formules nommées permettant de reprendre les valeurs de la feuille 1 et j'ai aussi des listes validation.

Je précise que certaines plages sont nommées en texte puis appellées par indirect(...)
D'autres plages sont nommées sans le nom de la feuille mais par exemple !$A$1:$B:$10

Depuis un moment, dont je ne connais pas l'origine, lorsque je change une valeur dans une cellule d'une de ces feuilles, l'autre feuille ne fait plus de calcul automatique. Je vois par exemple les tables des listes validation non remises à jour, ce qui bloque les listes.
Je dois à chaque fois appuyer sur F9 pour reexecuter un calcul et debloquer la situation.
Je précise que je suis bien en calcul automatique.

Connaissez vous ce problème?

Merci
 

Tibo

XLDnaute Barbatruc
Salut Trompette,

N'y aurait-il pas une macro Auto Open qui mettrait le classeur en Calcul sur Ordre dès son ouverture ?

Je n'y connais pas grand chose en VBA, mais c'est une piste à voir.

Autre piste, mais moins probable : voir si tu utilises des fonctions volatiles du style ALEA, AUJOURDHUI, MAINTENANT ...

Enfin, si rien ne marche, peux-tu joindre ton fichier pour nous le montrer (zippé, - de 50 ko, pas d'accents, tirets, espaces et autres caractères particuliers). Effaces ou remplace les données confidentielles avant.

@+
 

CyK

XLDnaute Junior
Salut Trompette,

J'ai déjà eu le même type de problème dans un classeur contenant beaucoup de données externe rapatriée via requête et traitées ensuite avec des plages nommées et des cross table. Au bout d'un moment rien n'y faisait même pas la touche F9. Seul moyen et tout est rentré dans l'odre, j'ai mis en calcul sur ordre et ai fait un bouton excel qui sélectionne les unes après les autres les feuilles, rafraichie les données pouis les cross table et enfin effectue un calculate sur la feuille dans le style :

Code:
Private Sub CommandButton1_Click()
    Sheets('ITEMS').Select
    Sheets('ITEMS').Range('A1').Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets('ITEMS').Calculate
    
    Sheets('PDL').Select
    Sheets('PDL').Range('A1').Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets('PDL').Calculate
    
    Sheets('S').Select
    Sheets('S').Range('A1').Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets('S').Calculate
    
    Sheets('S-1').Select
    Sheets('S-1').Range('A1').Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets('S-1').Calculate
    
    Sheets('S-2').Select
    Sheets('S-2').Range('A1').Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets('S-2').Calculate
    
    Sheets('S-3').Select
    Sheets('S-3').Range('A1').Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets('S-3').Calculate
    
    Sheets('S-4').Select
    Sheets('S-4').Range('A1').Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets('S-4').Calculate
    
    Sheets('STATS_PROD_PDL').Select
    Sheets('STATS_PROD_PDL').Range('A1').Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets('STATS_PROD_PDL').Calculate
    
    Sheets('SALES_CROSST').Select
    ActiveSheet.PivotTables('CROSS1').PivotCache.Refresh
    ActiveSheet.PivotTables('CROSS2').PivotCache.Refresh
    ActiveSheet.PivotTables('CROSS3').PivotCache.Refresh
    ActiveSheet.PivotTables('CROSS4').PivotCache.Refresh
    ActiveSheet.PivotTables('CROSS5').PivotCache.Refresh
    Sheets('SALES_CROSST').Calculate
    
    Sheets('CROSSTWEEK').Select
    ActiveSheet.PivotTables('CROSS1').PivotCache.Refresh
    ActiveSheet.PivotTables('CROSS2').PivotCache.Refresh
    ActiveSheet.PivotTables('CROSS3').PivotCache.Refresh
    ActiveSheet.PivotTables('CROSS4').PivotCache.Refresh
    ActiveSheet.PivotTables('CROSS5').PivotCache.Refresh
    ActiveSheet.PivotTables('CROSS6').PivotCache.Refresh
    ActiveSheet.PivotTables('CROSS7').PivotCache.Refresh
    Sheets('CROSSTWEEK').Calculate
    
    Sheets('REPORT_DATA').Select
    Sheets('REPORT_DATA').Range('A1').Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets('REPORT_DATA').Calculate
    
    Sheets('STOCK_NEG0').Select
    Sheets('STOCK_NEG0').Range('A1').Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets('STOCK_NEG0').Calculate
    
    Sheets('CROSST_RUPT').Select
    ActiveSheet.PivotTables('CROSS1').PivotCache.Refresh
    ActiveSheet.PivotTables('CROSS2').PivotCache.Refresh
    Sheets('CROSST_RUPT').Calculate
        
    
    Sheets('SUMMARY').Select
    Sheets('SUMMARY').Calculate
    
    MsgBox 'Mise à jour des données terminée', vbExclamation, 'FIN'
    
End Sub
Excel y va tout doux est me rafraichie très bien le tout sachant que le classeur pèse quand même près de 100 Mo.
 

Discussions similaires

Statistiques des forums

Discussions
312 310
Messages
2 087 127
Membres
103 479
dernier inscrit
Compta