XL 2019 Suppression de lignes de tableau dans une boucle

peper_eliot

XLDnaute Junior
Bonsoir tout le monde.
Je fais rapidement appel à vous pour un truc qui, j'en suis sûr, est bête comme chou pour les habitués du forum ;)
Je cherche à supprimer les lignes d'un tableau qui ne correspondent pas à un certain critère

Voici le bout de code correspondant :
VB:
Sub Macro1()
Dim c As Range
ActiveSheet.ListObjects("Tableau1").ListColumns(2).DataBodyRange.Select
For Each c In Selection
If Left(c, 10) <> "QUALIF2021" Then
'MsgBox ("pas 2021")
'MsgBox (c.Row)
'Suppression de la ligne du tableau
End If
Next
End Sub
J'arrive à boucler sur les données de ma colonne 2
Je suis capable de connaître le N° de la ligne à supprimer... Mais ne ne sais pas supprimer la ligne... D'ailleurs je me demande même si c'est "possible" car en faisant de la sorte, je réduit à chaque fois la sélection.

Alors voilà, si quequ'un passe par là et me donne une piste, je l'en remercie par avance ;)
 

Pièces jointes

  • Classeur1.xlsm
    15.1 KB · Affichages: 3

Dranreb

XLDnaute Barbatruc
Bonsoir.
VB:
Sub Macro1()
'
' Macro1 Macro
'
   Dim LOt As ListObject, T(), L As Long
   Set LOt = ActiveSheet.ListObjects("Tableau1")
   T = LOt.ListColumns(2).DataBodyRange.Value
   For L = UBound(T, 1) To 1 Step -1
      If Left(T(L, 1), 10) <> "QUALIF2021" Then LOt.ListRows(L).Delete
      Next L
   End Sub
 

peper_eliot

XLDnaute Junior
Bonsoir.
VB:
Sub Macro1()
'
' Macro1 Macro
'
   Dim LOt As ListObject, T(), L As Long
   Set LOt = ActiveSheet.ListObjects("Tableau1")
   T = LOt.ListColumns(2).DataBodyRange.Value
   For L = UBound(T, 1) To 1 Step -1
      If Left(T(L, 1), 10) <> "QUALIF2021" Then LOt.ListRows(L).Delete
      Next L
   End Sub
Bonjour Dranreb et merci beaucoup pour cette solution...
C'est beau, propre, efficace👏👏:D
Et tout ça sans ma flopée de "sélect"
Par contre, j'ai du mal à décripter la boucle avec Ubound :rolleyes: ... Je vais creuser ça

Encore merci
 

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 910
Membres
103 033
dernier inscrit
thazet