Bonjour,
Quand on a un problème de rapidité, il faut souvent essayer de réduire ce que l'on doit faire.
As tu réellement besoin de copier les données et les formats, fond et bordure ?
Et très souvent, au début, on fait une boucle pour traiter les cellules une par une, ce qui est très long. (Excel recherche la cellule, puis la valeur, puis tu fais le traitement, puis excel recherche la cellule cible, et place la valeur pour chaque cellule)
Par contre si tu traite une plage de cellules, c'est beaucoup plus rapide.
(Excel recherche la plage de cellule source, tu fais le traitement, puis excel place les valeur dans la plage de cellule cible et c'est fini)
Si tu as juste la valeur à copier, tu peux essayer un truc du genre :
Dim i As Byte, N As Byte, L As Integer
L = Range("k65536").End(xlUp).Row
If L = 1 Then L = 0
ActiveSheet.Range("K" & L+1:"M" & L+1+1073).Value=Range("O" & 9 & ":Q" & 9).Value
Application.CutCopyMode = False
End Sub
Par contre, j'ai pas compris le pourquoi de ta boucle :
For i = 1 To 9 ???
Car cette boucle sert apparement pour copier 9 zones sources les une après les autres.
Mais elle sont toute copier dans la même zone finale !
Donc seul la denière copie pour i=9 est apparement utile.
Par contre, je ne vois pas trop à quoi celà peut te servir de recopier autant de fois ces données...
Regarde si il n'y aurait pas une autre solution pour arriver à ton but sans autant de recopie...
@+