Modifier le code VBA

Bonjour. J'ai ce code qui fait ce qui est requis mais il est très lent, je ne sais pas où est le problème.

Sub Add_Resolution_2() 
Dim i As Long 
Dim MH As Long, k As Long 
Application.ScreenUpdating = False
 With Sheets("sh1")
 lrow = .Cells(Rows.Count, 32).End(xlUp).Row
 liste1 = Split("AF,AG,AH,AI,AJ,AK,AL,AM,AN, AO, AP, AQ, AR", ",") 
liste2 = Split("D,E,F,G,H,i,j,k,L,M,N,O,P", ",") 
For i = LBound(liste1) To UBound(liste1) .Range(liste1(i) & "6:" & liste1(i) & lrow).Copy Sheets("sh1").Range(liste2(i) & "6") 
Application.ScreenUpdating = True 
Next i
 End With 
End Sub

Bonjour,

1. Essayez déjà en supprimant l'instruction

Application.ScreenUpdating = True

Cela se fait automatiquement lorsque le code est terminé
Sinon l'instruction Copy n'est pas la manière la plus rapide

2. Voir aussi si vous n'avez pas d'autres codes dans votre feuille, genre Worksheet_change qui s'exécutent chaque fois que vous changez quelques choses sur votre feuille

3. Vos variables MH et K ne servent pas dans ce code. Par contre lrow devrait être déclarée --> Dim Lrow as long

Cordialement

Rechercher des sujets similaires à "modifier code vba"