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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 févr. 2013 à 15:45
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
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 25 févr. 2013 à 18:01
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