Macro tres lente surtout sous totaux

Bonjour,

J'ai créé une macro mais qui est soudainement devenu très lente. Je sais pas comment faire pour la rendre plus rapide.

J'ai l'impression que c'est au niveau des sous-totaux.

Ci-joint le fichier avec uniquement le code.

Merci pour votre aide

Bonne journée

15macro-test.xlsm (31.78 Ko)

bonjour,

Ceci ne peux en aucun cas être considéré comme une une macro !

C'est l'enregistrement d'un grand nombre d'opérations... Mais présenté tel quel, ça n'a aucun intérêt.

Environ 1000 lignes de code non optimisées : Je doute fort que quelqu'un se penche sur ce problème !

Il faudra donc que tu te prennes par la main et que tu ne commences l'optimisation toi même :

Je t'ai fait les première lignes (nettoyage...)

Tu vires tout et tu remplace par :

Sheets("BD").Delete
Sheets("D C").Cells.Delete
Sheets("COPIE D").Cells.Delete
Sheets("COPIE D+1").Cells.Delete
Sheets("RELEVE D").Cells.Copy Sheets("COPIE D").Range("A1")
Sheets("RELEVE D+1").Cells.Copy Sheets("COPIE D+1").Range("A1")
Sheets("ASSURANCE CREDIT").Cells.Delete
Sheets("PAIEMENT D+1").Cells.Delete

La macro enregistrée ne sert que de support à la programmation proprement dite :

Quand tu vas chercher de l'essence pour ta voiture, tu commence pas par dire :

"Je sélectionne ma voiture...

Je sélectionne la clef de la portière...

Je tourne la clef dans la serrure...

J'ouvre la porte...

Je m'assied......

Je ferme la porte...

Je mets la clef de contact..."

Je suppose que tu dis simplement : "Je vais chercher de l'essence"

Et tout le monde te comprend !

Avec VBA c'est pareil : inutile d'enregistrer des trucs qui servent à rien : Il suffit de dire ce que tu veux faire...

Hum... Je suppose que tu as compris le sens de ma remarque !

A+

Bonjour galopin01,

j'crois qu't'as oublié d'sélectionner l'conducteur et la route !!!

mébon, on va pas en faire tout un fromage (...94).

dhany

Bonjour,

Je te remercie Galopin, tu as raison sur le fond mais la forme...

Si tu as d'autres piste pour m'aider je suis preneur.

Bonne journée

Bonjour,

Tu as bien résumé mon propos, mais je pourrais te retourner le compliment : Ton enregistrement c'est le fond... mais la forme est à revoir !

Désolé mais là ton truc c'est la pierre de Rosette. Et moi je ne suis pas Champolion !

Ce truc est indéchiffrable surtout sans le classeur KIVABIEN avec. (et en + quelques commentaires !)

Mais même avec, il n'est pas prouvé que tu trouveras un volontaire pour faire le boulot à ta place si tu ne veux pas faire le moindre effort !

Je t'ai déjà donné un truc pour diviser par 5 une quarantaine de ligne.

Pour la suite il y a trop d'inconnues : Les 2 lignes suivantes commencent par un questionnement :

Workbooks.Open Filename:="V:\COMPTA\CLIENT\Grand_livre_tiers.xls"
ActiveCell.FormulaR1C1 = "Lettre auxiliaire"

Vu de ma fenêtre c'est incompréhensible :

C'est quoi cette ActiveCell.Qui pousse comme ça au beau milieu de ton grand livre ??

Et ce n'est que le début des questionnements : Il y a après quelques centaines de lignes qui servent à rien : Mise en forme, quadrillage et mise en page peuvent être viré de cet enregistrement. Il sera toujours temps de faire de la décoration après...

Tout ce qui est Mise en forme, Mise en page SetUp, peut et DOIT être externalisé : YORAKA créer une procédure secondaire appelée avec un call et qui fera le job. Mais dans l'immédiat c'est pas l'important.

Après la mise en place de formule de TCD... TOUSSA pour moi c'est nébuleux donc je peux pas te répondre : En programmation on ne travaille pas avec une boule de cristal...

De toute façon, je serais absent jusqu'à mercredi, ça te laisse le temps de méditer sur mes observations. Je me fais pas trop de souci : En l'état tu trouveras surement pas d'autre interlocuteur près à se jeter sur l'os.

D'ici là ça te laisse le temps d'essayer de nous présenter un truc un peu plus compréhensible.

Désolé pour la forme, mais il y a des fois ou il faut savoir appeler un chat, un chat... Laisser le sujet sans réponse ne t'aurait rien appris de plus !

A+

Bonjour,

Merci, je fais avec le peu de mes connaissances.

La macro fonctionnait normalement env 40 sec (certes pas aussi vite que si c'est toi) mais j'ai eu une mise à jour Windows et là la macro est très lente surtout avec la création de soustotaux (problème de recalcul ?).

Réécrire correctement toute la macro n'est pas de mes capacités actuelles mais peut être quelqu'un sait pourquoi soudainement c'est très long.

Merci

Désolé mais je ne comprend même pas que cette macro puisse fonctionner :

Chez moi ça plante dès le :

Workbooks.Open Filename...

Normal : Ce workbook.Open donne la sélection à n'importe quelle cellule du Classeur que tu viens d'ouvrir et écrit dessus. Puis il supprime des colonnes à ce fichier... Visiblement ce n'est pas le but recherché !

Donc je réitère ma demande sous une autre forme :

Fournir les fichier concernés expurgés de tout ce qui est inutile...

Et quelques explications (si possible une copie conforme du résultat attendu.)

Je ne serai pas de retour avant mercredi.

A+

Rechercher des sujets similaires à "macro tres lente surtout totaux"