Performances dégradées même dans les autres classeurs

Bonjour à vous!

J'aimerais comprendre pourquoi les performances, de tous les classeurs ouverts, sont dégradées dû à une trop grande quantité de formules et des données dans un des classeur ouvert.

En fait, ce sont les délais d'écriture de valeurs dans les cellules de n'importe quelle feuille qui sont de plus en plus grand si un des classeur contient beaucoup de données et beaucoup de formules faisant référence à ces données.

Autrement, les autres performances d'exécution de code sont tout à fait correctes, voire même instantanées. C'est l'écriture dans les cellules qui est problématique.

Sans entrer plus dans le détails, je vous joints 2 classeurs pour démontrer ce de quoi je parle:

- "Gestionnaire de tâches Tests perf.xlsm" qui contient:

Une feuille Liste qui contient 300 tâches

Une feuille Log qui contient 1500 lignes de log des 300 tâches

Dans la feuille Liste, 4 colonnes avec des formules: Une colonne faisant une somme à chaque fois que la tâche apparaît dans le log et les 3 autres qui fait référence à la dernière valeur de la tâche dans le log

Et dans la feuille log, un bouton pour écrire des valeurs qui n'ont aucun lien avec les formules de la feuille Liste ou les données de la feuille Log

- "Autre classeur Tests perf.xlsm" qui contient

Un bouton pour écrire des valeurs qui n'ont aucun lien avec les formules de la feuille Liste ou les données de la feuille Log

Et ce classeur n'a aucun lien avec le premier classeur

Plus je diminue le nombre de tâches/formules/logs, plus les performances d'écriture augmentent, dans tous les classeurs, en suivant le même ratio.

Est-ce que c'est normal que l'écriture de valeur soit affectée ainsi même si les formules et données n'ont aucun lien avec l'écriture des valeurs ?

Est-ce normal que ça affecte tous les classeurs Excel même s'ils n'ont pas de lien entre eux ?

Et optimalement, suis-je en mesure d'utiliser peut-être d'autres formules pour arriver à mes fins ou aie-je plutôt atteint la limite de ce qu'Excel peut faire pour mon besoin ? Ou peut-être y a t'il une configuration à faire ?

J'aimerais éviter de devoir faire un purge régulier des données pour gagner de la performance. J'opterais plutôt pour l'utilisation d'une base de données. Mais si je peux conserver tout ça à même Excel, ce serait parfait.

Merci beaucoup de m'aider!!

Bonjour,

au premier coup d'oeil, il y a un tas de matricielles et celles-ci sont très gourmandes en mémoire....

il te faudra peut être faire autrement (VBA)

P.

Effectivement..... se sont toutes des matricielles!

Mais pourquoi ont-elles un poid au niveau ressources et durée traitement si elles ne sont pas du tout en cause dans l'insertion des valeurs ?

Et pourquoi ça affecte les autres classeurs ?

C'est comme si, lors de l'événement Worksheet Change de n'importe quelle feuille Excel, elles sont toutes rafraichies, analysées, etc...

Bref, si quelqu'un peut m'éclaircir sur le sujet...... Merci!!

Edit: J'ai regardé le fichier que tu as joint. Je vais tenter d'utiliser ta méthode pour écrire les données. Merci!

re,

tu peux te mettre en calcul manuel parce que il evalue toutes les formules à chaque changement et ça ralenti très fort ça; ou alors trouver une autre méthode comme ce que je t'ai proposé en vba

voir sur google "lenteur matricielle excel", tu auras des réponses mais il faut faire le tri un peu dans le paquet de réponses

Bonjour,

Essaie ceci et redis nous pour les résultats.

Bonnes fêtes de fin d'année.

Cdlt.

Option Explicit

Public Sub Bt()
Dim ws As Worksheet
Dim rng As Range, rCell As Range
Dim start As Single, finish As Single

    start = Timer

    With Application
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
    End With

    Set ws = ActiveSheet

    With ws
        Set rng = .Range("I15:I500")
        rng.ClearContents
        For Each rCell In rng
            rCell.Value = rCell.Row
        Next rCell
    End With

    Application.Calculation = xlCalculationAutomatic

    finish = Timer

    MsgBox "délai : " & finish - start & " secondes"

    Set rng = Nothing: Set ws = Nothing

End Sub

Merveilleux!! C'est vraiment le plus simple ça!

Je désactive le mode auto juste lorsque j'écris les valeurs et le réactive pas la suite!!

Merci infiniment!!

Rechercher des sujets similaires à "performances degradees meme classeurs"