ralentissement d'exécution dans un fichier

Bremic83

XLDnaute Occasionnel
Bonjour à tous.
Dans le fichier accessible avec le lien çi-dessous,il y a 15 feuillets.
Le feuillet "pronos",me pose problème:il rame !
J'utilise dans ce dossier de nombreuses macros et formules
Je pense que c'est dû à une saturation de données,mais je ne sais pas comment faire pour alléger cette charge.
Je viens donc demander conseil à plus qualifiés que moi.
Dans l'attente,je remercie celui ou ceux qui voudront bien se pencher sur ce problème.
Bremic

Ce lien n'existe plus
 

Bremic83

XLDnaute Occasionnel
Re : ralentissement d'exécution dans un fichier

Eh bien sûr,je suis preneur,code VBA ou autre moyen ,pourvu que je redonne un rythme normal à mon dossier,et l'empêcher de ramer et buguer à chaque déplacement de cellule je serai satisfait.
Ce code sera le même pour le dossier complet, ou applicable après adaptation pour chaque feuillet ?
 
Dernière édition:

Bremic83

XLDnaute Occasionnel
Re : ralentissement d'exécution dans un fichier

Ok pour le code VBA.
Lorsque le nettoyage sera fait ,on verra si la vitesse de réaction et d'enregistrement est bonne et si le bug qui survient à chaque glissé d'une cellule ou d'un groupe a disparu,du moins, je l'espère.
Ton code devra t il être adapté à chaque feuillet ,ou sera t il adapté à l'ensemble du dossier ?
 

gosselien

XLDnaute Barbatruc
Re : ralentissement d'exécution dans un fichier

Bonjour,

sorry je n'ai pas vu ta demande ..

voilà le code d'un des plus connus parmi les MVP Excel, une référence :)

Code:
Sub NettoieEtDerniereCellule()     ' Laurent Longre 2000
Dim sht As Worksheet, DCell As Range, Calc As Long, Rien As String
On Error Resume Next
Calc = Application.Calculation
With Application
  .Calculation = xlCalculationManual
  .StatusBar = "Nettoyage en cours..."
  .EnableCancelKey = xlErrorHandler
  .ScreenUpdating = False
End With
For Each sht In Worksheets
  If sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(sht.[A1]) Then
    Set DCell = sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
    If Not DCell Is Nothing Then
      sht.Range(DCell, sht.Cells([A:A].Count, 1)).EntireRow.Clear
      Set DCell = Nothing
      Set DCell = sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)
      If Not DCell Is Nothing Then _
         sht.Range(DCell, sht.[IV1]).EntireColumn.Clear
    End If
    Rien = sht.UsedRange.Address
  End If
Next sht
Application.StatusBar = False
Application.Calculation = Calc
End Sub
 

Bremic83

XLDnaute Occasionnel
Re : ralentissement d'exécution dans un fichier

Bonjour gosselien
J'ai eu peur que tu m'aies abandonné.
Je vois avec grand plaisir qu'il n'en est rien,et je t'en remercies.
Je viens de tester le code sur le premier feuillet "arrivées"de mon fichier "origine",et j'ai une mauvaise surprise:il m'a effacé tout de la colonne IM,à la colonne UY qui est la dernière normalement utilisée.
Faut-il adapter le code à chaque feuillet ?
 

gosselien

XLDnaute Barbatruc
Re : ralentissement d'exécution dans un fichier

?
De toute manière, il est TOUJOURS préférable d'essayer sur 1 copie du fichier :)
Ce code ne m'a jamais rien effacé qui ne devait pas; perso, je fais un premier nettoyage moi-même et puis je lance ce code et jamais de soucis comme tous les code de Lonrant LONGRE à ma connaissance.

P.
 

Bremic83

XLDnaute Occasionnel
Re : ralentissement d'exécution dans un fichier

Merci,je vais essayer sur les autres feuillets;j"attendais ta réponse avant de faire mes essais.
Je n'ai perdu aucune donnée,je n'ai pas enregistré,lorsque j'ai constaté l'effacement.
Encore merci,bonne journée.
Bremic
 

Bremic83

XLDnaute Occasionnel
Re : ralentissement d'exécution dans un fichier

Bonjour à tous.
Après nettoyage,j'ai une amélioration ,le bug qui faisait partir mon classeur excel sur lequel je travaillais,a disparu ,et la saisie de données se fait très correctement au point de vue vitesse.
Par contre,ce qui subsiste,c'est la lenteur des enregistrements,et ,après un copier coller,la petite roue colorée qui tourne,quelques fois30 à 40 secondes,souvent plusieurs fois,s'arrête,puis repart,sans qu'on puisse rien faire,et c'est pénible et agaçant.
J'ai vu,sur un autre site,que c'était un bug sur office 2011 et office 2016,et,que sur 2011,ils y a eu une amélioration avec un patch,mais je ne trouve rien qui dit comment se procurer ce patch,qui serait compatible avec le mac.
Si l'un d'entre vous pouvait me donner ce tuyau,je lui en serais très reconnaissant.
Dans l'espoir,je vous dis : à plus.
Bremic
 

Shakki

XLDnaute Occasionnel
Re : ralentissement d'exécution dans un fichier

Bonjour Bremic83,

J'ai jeté un oeil à ton fichier dimanche et j'ai vu qu'il y avait beaucoup d'images, de boutons d'option, etc qui sont copiés et recopiés des dizaines et des dizaines de fois (dans l'onglet prono en particulier). Tous ces "objets" sont assez gourmands en terme d'octets.

J'ai donc supprimé une grande partie de ces copies pour tenter d'alléger ton fichier et au final j'obtiens 2,8 Mo (cf lien). Si tu fais tourner la macro de gosselien en plus, je penses que tu peux encore l'alléger.

En tout cas, à l'enregistrement, je n'ai pas eu ce problème de lenteur que tu mentionnes. Peux-tu faire un test stp ?

Ce lien n'existe plus
 

Bremic83

XLDnaute Occasionnel
Re : ralentissement d'exécution dans un fichier

Bonjour ShakkiJe viens de regarder ton envoi,et,apparemment,les premiers tests sont bons,c'est encourageant.
Je verrai demain après midi à faire des manips plus nombreuses et voir si cela se confirme,et verrai alors comment faire au mieux pour faire la même chose sur le dossier original ou si je vire l'original et adopte le tien
Je te remercie sincèrement
A plus
Bremic
 

Bremic83

XLDnaute Occasionnel
Re : ralentissement d'exécution dans un fichier

Bonjour Shakki
J'étais trop impatient,j'ai fait mes essais ce matin,et ,sans avoir tout fait,faute de temps,ce que j'ai fais me donne satisfaction.
Aurais tu la gentillesse de m'expliquer,en détail,et si tu en as le temps,bien sûr,comment détecter et nettoyer tout ce que tu énumères dans ton post d'hier,afin que je puisse épurer,moi-même,mes fichiers,et le faire périodiquement.
Ce serait très sympa de ta part.
A plus,j'espère.
Bremic
 

Shakki

XLDnaute Occasionnel
Re : ralentissement d'exécution dans un fichier

Bonjour à tous,

La méthode décrite par gosselien est la plus efficace pour faire un grand ménage.

Ne connaissant pas ton fichier aussi bien que toi pour recréer les boutons nécessaires si je les enlevais tous, j'ai procédé autrement.

J'ai déplacé un bouton d'option puis sélectionné tous ceux qui étaient en dessous (avec la flèche "sélectionner les objets", dessiner un sorte de grand carré au dessus des objets à éliminer pour les sélectionner tous).
Après ne restait plus qu'à les supprimer et remettre à sa place celui que j'avais déplacé.

C'est un peu long mais ça m'a permis de ne pas perdre de vue la manière dont tu avais organisé ton fichier.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino