Macro qui mouline

sevy1

XLDnaute Occasionnel
Bonjour à tous
J'ai écrit ce bout de code qui me permet de supprimer les lignes vide ou contenant le terme "Sect" au niveau de la colonne A mai quand je lance elle mouline pendant longtemps avant de réagir .
Comment puis-je l'améliorer pourqu'elle devienne rapide.
Merci pour votre contribution.
Code:
Sub SupprimerLignes()
Application.ScreenUpdating = False
Dim F As Worksheet
 Dim L As Long
  Set F = ActiveSheet
 For L = 25000 To 2 Step -1
    If F.Cells(L, 1).Value = "" Or F.Cells(L, 1).Value = "Sect" Then
    F.Rows(L).Delete
    End If
    Next L
 Application.ScreenUpdating = True
 End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Macro qui mouline

Bonjour sevy1

A tester:

Code:
Sub SupprimerLignes()
Application.ScreenUpdating = False
Dim zone As Range
Dim F As Worksheet
Set F = ActiveSheet
tablo = F.Range("A2:A25000")
 Dim L As Long
  For n = LBound(tablo, 1) To UBound(tablo, 1)
    If tablo(n, 1) = "" Or tablo(n, 1) = "Sect" Then
      If Not zone Is Nothing Then
       Set zone = Application.Union(zone, F.Rows(n + 1))
      Else
       Set zone = F.Rows(n + 1)
      End If
    End If
  Next
zone.Delete
Application.ScreenUpdating = True
End Sub
 

sevy1

XLDnaute Occasionnel
Re : Macro qui mouline

Bonjour
Merci pour la réactivité et merci pour la solution elle marche
seulement je veux comprendre certaines instructions
Si mon critère de suppression étai sur la colonne 3
est-ce que cette écriture serait juste
Code:
tablo = F.Range("A2:c25000")
  Dim L As Long
   For n = LBound(tablo, 3) To UBound(tablo, 3)
2- Que signifie et que fait cette instruction
Code:
If Not zone Is Nothing Then
        Set zone = Application.Union(zone, F.Rows(n + 1))
       Else
        Set zone = F.Rows(n + 1)
       End If
     End If
Merci d'avance pour vos explications
 

pierrejean

XLDnaute Barbatruc
Re : Macro qui mouline

Re

1 il serait plus juste

Code:
  F.Range("C2:C25000")
   For n = LBound(tablo, 1) To UBound(tablo, 1)

Inutile d'augmenter la taille du tableau !!!

2 Zone est un range
S'il est déjà défini on lui ajoute la ligne vide ou contenant Sect
sinon on le definit comme la 1ere ligne a effacer
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
176

Statistiques des forums

Discussions
312 322
Messages
2 087 270
Membres
103 503
dernier inscrit
maison