[VBA excel] macro bloquée par taille fichier

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!!
Configuration: Windows XP
Internet Explorer 6.0
excel 2003

2 réponses

  1. 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
    1. 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