[VBA excel] macro bloquée par taille fichier

pol_38 -  
 Utilisateur anonyme -
Bonjour,

Débutant en VBA-excel, j'ai créé une petite macro qui efface les lignes d'un fichier contenant le mot "DOC" dans la colonne 6.
Elle fonctionne pour un petit fichier mais bloque si le fichier devient trop lourd (>10 000 lignes).
Quelqu'un aurait une idée pour optimiser cette macro et la faire tourner qqe soit la taille du fichier?

Quand le fichier est trop lourd, j'ai le message d'erreur suivant:
"delete method of Range class failed"

Voici le code:

Sub Prodel_Rows()

Rows("1:1").Select
Cells.AutoFilter
Selection.AutoFilter Field:=6, Criteria1:="DOC"
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp

End Sub

Merci d'avance pour votre aide!!
A voir également:

2 réponses

Utilisateur anonyme
 
Bonjour,

autre point !

désactiver l'affichage pour alléger l'exécution :


Sub Test1()

    Application.ScreenUpdating = False
    ' ...
    ' Code
    ' ...
    Application.ScreenUpdating = True
    
End Sub
'


Lupin
1
Ziragora Alphonse
 
Bonjour Pol_38,

Avec la méthode Filter, ça peut aller vite.... Pour l'instant, cette méthode te bloque car message d'erreur. Je te propose, en attendant, ce code qui prend un peu plus de temps( ex. 30 sec pour 13 000 lignes) mais qui réussit.

a = 1
EndTable = Range("F65536").End(xlUp).Row
For I = 2 To EndTable
a = a + 1
If Cells(a, 6) = "DOC" Then
Cells(a, 6).EntireRow.Delete
a = a - 1
End If
Next I


Merci.
0