suppression ligne sous condition

roni

XLDnaute Nouveau
Bonjour,

Je voudrai supprimer les lignes d'un tableau déjà trié par la colonne E avec comme condition 9 en colonne E et garder les autres lignes .

Merci d'avance
 

Staple1600

XLDnaute Barbatruc
Re,

En attendant le fichier (et que mes pâtes soient al dente ;) )
VB:
Sub MacroAuPifTestéeDansLeVide()
Dim Lig&: Lig = Cells(Rows.Count, 5).End(xlUp).Row - 1
[F2].Resize(Lig) = "=IF(RC[-1]=9,""Staple1600"",0)"
With Columns(6)
.SpecialCells(-4123, 2).EntireRow.Delete: .Clear
End With
End Sub
 

Staple1600

XLDnaute Barbatruc
Re,

@roni
Apparemment tu as zappé le message#4, non ?
Car j'y avais posté une macro (qu'il suffisait de modifier un chouia) ;) et qui fait ce que tu souhaites.
VB:
Sub MacroAuPifTestéeDansLeVideDésormaisRempli()
Dim Lig&: Lig = Cells(Rows.Count, 5).End(xlUp).Row - 1
[F3].Resize(Lig) = "=IF(RC[-1]=9,""Staple1600"",0)"
With Columns(6)
.SpecialCells(-4123, 2).EntireRow.Delete: .ClearContents
End With
End Sub
 

roni

XLDnaute Nouveau
Re,

@roni
Apparemment tu as zappé le message#4, non ?
Car j'y avais posté une macro (qu'il suffisait de modifier un chouia) ;) et qui fait ce que tu souhaites.
VB:
Sub MacroAuPifTestéeDansLeVideDésormaisRempli()
Dim Lig&: Lig = Cells(Rows.Count, 5).End(xlUp).Row - 1
[F3].Resize(Lig) = "=IF(RC[-1]=9,""Staple1600"",0)"
With Columns(6)
.SpecialCells(-4123, 2).EntireRow.Delete: .ClearContents
End With
End Sub
Re,

@roni
Apparemment tu as zappé le message#4, non ?
Car j'y avais posté une macro (qu'il suffisait de modifier un chouia) ;) et qui fait ce que tu souhaites.
VB:
Sub MacroAuPifTestéeDansLeVideDésormaisRempli()
Dim Lig&: Lig = Cells(Rows.Count, 5).End(xlUp).Row - 1
[F3].Resize(Lig) = "=IF(RC[-1]=9,""Staple1600"",0)"
With Columns(6)
.SpecialCells(-4123, 2).EntireRow.Delete: .ClearContents
End With
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir mapomme

Le tri a son importance lors de la suppression des lignes?
(Je te demande cela parce que j'ai pas le courage de retélécharger le fichier exemple pour tester ton code)
Nos deux codes ne produisent pas le même effet?
Si non tu peux m'expliquer (ou me marabouter que s'évanouisse ma fainéantise) ? ;)

EDITION: Je viens de relire ton code, et je crois comprendre après avoir noté le double Find ;)
(par contre le xlPrevious me pertube)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @Staple1600,

Une autre écriture plus lisible :
VB:
Sub delete_9()
Dim deb As Range, fin As Range
   With Feuil1.Columns(5)
      Set deb = .Find(9, after:=.Cells(Rows.Count, 1), searchdirection:=xlNext)
      Set fin = .Find(9, after:=.Cells(1, 1), searchdirection:=xlPrevious)
      If Not deb Is Nothing Then .Range(deb, fin).EntireRow.delete
   End With
End Sub

(par contre le xlPrevious me pertube)
En fait le after devient l'équivalent d'un "before" quand searchdirection:=xlPrevious. Au début ça m'a aussi un peu chagriné.

En prime un fichier.
 

Pièces jointes

  • roni- suppr lignes triées- v1.xls
    103.5 KB · Affichages: 21
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir à tous,

Puisque le tableau est trié sur la colonne E c'est simple :
Code:
Sub Supprimer()
If Application.CountIf([E:E], 9) Then Rows(Application.Match(9, [E:E], 0)).Resize(Application.CountIf([E:E], 9)).Delete
End Sub
Bonne nuit.
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib