Bonjour,

Je rencontre une erreur assez improbable (tout du moins, ça fait un moment que je croche dessus).

J'ai un fichier .xls qui regroupe environ 30'000 lignes dans lequel je dois copier certaines lignes et les supprimer par la suite.

Mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
For i = dernLigne To 2 Step -1 
     If InStr(ActiveWorkbook.ActiveSheet.Cells(i, 1).Value(), "xyz") <> 0 Then
          If ActiveWorkbook.ActiveSheet.Cells(i, 47).Value() = "123" Then
               Set rng = ActiveSheet.Range(i & ":" & i)                
               Set rng1 = Application.Union(rng1, rng)
               cpt = cpt + 1       
          End If     
     End If
Next
Cela fonctionne entre certains intervaux. Ma dernière ligne correspond à environ 29000. Lorsque je boucle de 29000 à 24000, cela fonctionne. Par contre, après, une erreur 400 apparait. Savez-vous de quoi cela pourrait venir et comment pourrais-je contourner le tout (A part faire plusieurs boucles et une union des Ranges à la fin ?

Merci pour votre aide,

MB