Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro qui mouline

  • Initiateur de la discussion Initiateur de la discussion sevy1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
391
Réponses
5
Affichages
836
Réponses
4
Affichages
729
Réponses
4
Affichages
691
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…