Bonjour à tous
J'ai un fichier avec deux onglets le premier est sous forme de plage et le second sous forme de tableau .
Je souhaiterais couper et coller les données de l'onglet 1 vers l'onglet 2 lorsque la date est saisie dans la colonne 13 de l'onglet 1. je ne coupe pas toute la ligne parce que dans l'onglet 2 j'ai 4 colonnes supplémentaires à la fin ou se trouvent les formules.
Mon Problème c'est que le code fonctionne mais il est excessivement lent car j'ai plus de 25000lignes dans l'onglet 1 comment puis-je améliorer ce code pour être rapide. Merci d'avance pour vos propositions
J'ai un fichier avec deux onglets le premier est sous forme de plage et le second sous forme de tableau .
Je souhaiterais couper et coller les données de l'onglet 1 vers l'onglet 2 lorsque la date est saisie dans la colonne 13 de l'onglet 1. je ne coupe pas toute la ligne parce que dans l'onglet 2 j'ai 4 colonnes supplémentaires à la fin ou se trouvent les formules.
Mon Problème c'est que le code fonctionne mais il est excessivement lent car j'ai plus de 25000lignes dans l'onglet 1 comment puis-je améliorer ce code pour être rapide. Merci d'avance pour vos propositions
Code:
Dim sh1, sh2 As Worksheet
Sub Transfert_Donnees()
Dim derlig, i, j As Long
Set sh1 = Feuil4
Set sh2 = PAYE
derlig = sh2.Cells(Rows.Count, 1).End(xlUp).Row + 1
j = sh1.Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
For i = 2 To j
If sh1.Cells(i, 9) > 0 Then
sh1.Range(Cells(i, 1), Cells(i, 13)).Cut sh2.Cells(derlig, 1)
derlig = derlig + 1
End If
Next
For i = j To 2 Step -1
If sh1.Cells(i, 1) = "" Then sh1.Range(Cells(i, 1), Cells(i, 13)).Delete shift:=xlUp
Next
Application.ScreenUpdating = True
End Sub