Exécution très lente du code [Résolu]

Signaler
-
 fabiendag -
Bonjour à tous,
cette fois pour une autre application, je fais juste un copier coller ligne par ligne d'une feuille à l'autre. Il y a beaucoup de lignes dans la feuille d'origine.
Le problème est que mon programme mets déjà 2 secondes pour copier une cellule. Quand je fais en mode pas a pas, c'est pareil. Entre le moment où j'appuie sur F8 et le moment où le programme descend à la ligne du dessous il se passe au moins 2 secondes... sachant que j'ai plus de 6000 lignes à copier, ca prends un moment.
Voici le code :
Worksheets("clitou+diap").Activate
While Range("A" & ligne) <> "" Or Range("B" & ligne) <> ""
With Worksheets("annee en cours")
.Range("A" & ligne) = Range("A" & ligne)
.Range("B" & ligne) = Range("B" & ligne)
.Range("C" & ligne) = Range("C" & ligne)
.Range("F" & ligne) = Range("F" & ligne)
.Range("G" & ligne) = Range("G" & ligne)
.Range("H" & ligne) = Range("H" & ligne)
.Range("I" & ligne) = Range("I" & ligne)
.Range("J" & ligne) = Range("J" & ligne)
.Range("K" & ligne) = Range("K" & ligne)
.Range("L" & ligne) = Range("L" & ligne)
.Range("M" & ligne) = Range("M" & ligne)
.Range("R" & ligne) = Range("P" & ligne)
.Range("P" & ligne) = .Range("R" & ligne)
End With
ligne = ligne + 1
Wend

Fabien

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Salut

Étrange.
F8 : donc tu es sûr qu'il ne va pas exécuter d'autres lignes ailleurs.
De combien de mémoire disposes-tu ?
Sur quel Excel, quel Windows ?
Sur W7, as-tu jeté un œil au moniteur de performances ?
Quelle taille fait ton fichier ?
Combien de feuilles dans le classeur ?
Nombre approximatif de lignes dans la feuille active ?
Avec (peu, beaucoup) d'animations genre coloriage conditionnel ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
meci jack heureusement que tu es là... je pense que j'avais un soucis de performance à ce moment là, je peux pas en dire plus, mais là ca marche plus rapidement... donc c'est déjà ça, si j'ai d'autres soucis je te recontacte lol
sinon le fichier excel fait 7Mo avec une dizaine de feuilles dont la moitié à un peu de plus de 6000 lignes
il n'y a aucun coloriage ni quoi que ce soit dedans


Fabien
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
16
Vérifie qu'il n'y a pas de lignes ou colonnes superflues dans tes différents onglets. Pousse la barre de défilement du haut vers le bas et regarde si ça dépasse tes données. Même chose vers la droite.
S'il y a des lignes vides qui s'affichent, supprime toutes les lignes sous tes données et même chose pour les colonnes. Ça va réduire la taille du fichier.

Aussi, en début de procédure, tu peux mettre Application.ScreenUpdating = False (à remettre à True à la fin)
S'il y a des formules, utilise aussi
Application.Calculation = xlCalculationManual
à remettre à xlCalculationAutomatic à la fin.

Ça devrait aider pour la vitesse

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
merci bien à vous deux, mon application est plus rapide maintenant.



Fabien
Résolu

Fabien