Calcul Auto ou Manuel avec matricielles

Bonjour à tous,

Je pensais que le calcul n'affectait que le classeur actif, mais :

Problème :

J'ai 2 classeurs identiques sauf que

1) classeur1, contient 2 formules matricielles très complexes

2) classeur2, sans matricielles

Si j'ouvre uniquement le classeur2, pas de problème

mais si j'ouvre les 2 classeurs, les macros du classeur2 moulinent un max !

D'où ma question: le calcul affecterait-il les 2 classeurs ?

ou peut-être une option à voir ?

Nota: les 2 classeurs sont en calcul Auto,

dans le classeur qui contient les matricielles, les macros commencent par

Application.Calculation = xlCalculationManual

Je reste perplexe sur ce coup là !

Votre avis ?

Amicalement

Claude.

Bonjour Claude

regarde

Cordialeùent

Bonjour Amadéus,

Merci pour le lien, mais le problème reste entier, ou je ne n'ai pas pigé le quoi faire,

il s'agit du sujet météo en l'occurrence

J'ai fais 2 classeurs afin de comparer 2 solutions

Les 2 classeurs étant en calcul Auto,

Que le classeur contenant les matricielles mouline, çà je comprends

mais que celui sans matricielles mouline aussi, non !

çà sous-entend que les calculs se font sur les 2 classeurs

et que les matricielles du classeur1 ralentissent le classeur2

il n'y a pourtant aucune liaisons entre les 2 !

Serait-on condamnés à n'ouvrir qu'un classeur quand l'un contient des matricielles ?

à suivre

Amicalement

Claude.

-- Mar Mai 18, 2010 10:05 am --

Bonjour à tous,

Je ne lâche pas le morceau et reviens à la charge,

Un fichier comportant des matricielles pénalise t-il les calculs des autres classeurs ouverts ? oui ou non

Peut-on éviter çà, sans avoir à notifier quoi que çà soit dans les fichiers sans matricielle ?

ci-joint 2 fichiers qui fonctionnent parfaitement si ouverts séparément.

Fichier sans matricielles

https://www.excel-pratique.com/~bigfiles/doc/MA_tA_oV4.zip

Fichier avec matricielles

https://www.excel-pratique.com/~bigfiles/doc/MA_tA_o_matricielle.zip

Je comprendrais qu'on code des options dans le classeur avec matricielles, mais pas les autres.

Bonne journée

Amicalement

Claude

Bonjour

Claude, en mettant le code du lien donné par Amadéus dans le ThisWorkbook de "Météo Matricielle"

Option Explicit

Private Sub Workbook_Open()
Dim i As Integer

For i = 1 To ThisWorkbook.Sheets.Count

Sheets(i).EnableCalculation = False

Next i

End Sub

Le calcul redevient immédiat.

Bien sûr, il faut fermer et rouvrir se fichier puisque le code est sur l'open du fichier.

Amicalement

Nad

Bonjour Nad, Amadéus, forum,

J'avais vu ce code fourni par le lien de Amadéus mais n'avais pas compris la logique,

mébon ! çà marche super.

édit: c'était trop beau, en fait çà marche pas du tout pour le fichier avec matricielles,

il faut que le calcul se fasse entre chaque filtre de la boucle et le "calculate" n'agit apparemment pas !

même en supprimant la ligne

Application.Calculation = xlCalculationManual

vois les résultats (toutes les lignes sont identiques)

pour le fichier sans matricielles c'est bon, il n'est plus pénalisé.

doit manqué encore un truc !

Merci à vous deux

Amicalement

Claude

Bonsoir à tous,

Voici où j'en suis,

avec ce code, la fonction "Calculate" n'agit plus

Private Sub Workbook_Open()
Dim i As Integer
    For i = 1 To ThisWorkbook.Sheets.Count
        Sheets(i).EnableCalculation = False
    Next i
End Sub

Pour remplacer Calculate, j'ai mis:

'--- ici on active le calcul après filtre, puis le désactive aussitôt ---
'--- (un Calculate n'agit pas !)
           Worksheets(1).EnableCalculation = True
           Worksheets(1).EnableCalculation = False
                Cells(i, 2) = .Cells(2, 1) 'pression min
                Cells(i, 3) = .Cells(3, 1) 'pression max

etc...

il me semble qu'on devrait pouvoir faire mieux !

Si un "cador" en VBA passe par là

----------- Conclusion -------

Si on a des matricielles dans un fichier, ajouter le code dans ThisWorkbook Open

afin de ne pas pénaliser les autres classeurs ouverts.

enfin, c'est ce que j'en conclus !!

Je laisse un peu le poste ouvert

fichier https://www.excel-pratique.com/~bigfiles/doc/MA_tA_o_matricielle_2.zip

Amicalement

Claude

Bonsoir forum,

Personne n'ayant contredit ma conclusion,

j'opterais donc pour mes futurs fichiers avec matricielles complexes cette solution que je rappelle :

placer ce code dans le ThisWorkbook (Open)

    Private Sub Workbook_Open()
    Dim i As Integer
        For i = 1 To ThisWorkbook.Sheets.Count
            Sheets(i).EnableCalculation = False
        Next i
    End Sub

et si besoin de calculer mettre le "EnableCalculation" à True

Worksheets("nomFeuille").EnableCalculation = True

J'ai encore appris quelque chose sur ce poste

merci à tous

Amicalement

Claude

Rechercher des sujets similaires à "calcul auto manuel matricielles"