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

supprimer lignes selon une liste de valeurs

  • Initiateur de la discussion Initiateur de la discussion alzi
  • 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 !

A

alzi

Guest
Bonjour,
Je suis une quiche en VBA et bien que plusieurs sujets traitent de ce problème, je ne suis pas arrivé à l'adapter à mon cas très simple.

J'ai une feuille de calcul sur laquelle je souhaite effacer toutes les lignes dont une des cellules est égale à une valeur dont j'ai la liste.
Comme je dois le faire sur plein de feuilles différentes, il me faut une petite macro.

Je joins le fichier exemple avec la liste des ocurences sur la deuxième feuilles du classeur.

Quelqu'un pourrait m'aider svp ?
Je vous remercie bien
 

Pièces jointes

Re : supprimer lignes selon une liste de valeurs

ça marche sur cette feuille mais je devrai appliquer la macro sur plein de feuilles différentes avec des noms différent.
Il ne faudrait donc pas utiliser dans la macro, le nom de la feuille sur laquelle on applique les suppressions.

Tu crois que c'est faisable ?
Merci
 
Re : supprimer lignes selon une liste de valeurs

Re

Une solution (il te suffit de mettre ans l'Array le nom de toutes les feuilles concernées) :

Code:
Sub supprimer()
lesfeuilles = Array("test", "Feuil1")
Application.ScreenUpdating = False
tablo = Sheets("Feuil2").Range("A2:A" & Sheets("Feuil2").Range("A655536").End(xlUp).Row)
For m = LBound(lesfeuilles) To UBound(lesfeuilles)
 For n = LBound(tablo, 1) To UBound(tablo, 1)
  Set c = Sheets(lesfeuilles(m)).Columns("F").Find(tablo(n, 1), LookIn:=xlValues, lookat:=xlWhole)
  If Not c Is Nothing Then
    Rows(c.Row).Delete
  End If
 Next n
Next m
Application.ScreenUpdating = True
End Sub

NB: il est aussi possible de ne faire reference qu'aux feuilles non concernées (cas ou ne conait pas les noms des feuilles concernées)
 
Re : supprimer lignes selon une liste de valeurs

Bonjour,

Méthode rapide

Code:
Sub supLignesRapide()
  Application.ScreenUpdating = False
  sup = Sheets("feuil2").[C2]
  a = Range("f2:f" & [f65000].End(xlUp).Row)
  For i = LBound(a) To UBound(a)
    If InStr(sup, a(i, 1)) = 0 Then a(i, 1) = 0 Else a(i, 1) = "sup"
  Next i
  Columns("b:b").Insert Shift:=xlToRight
  [B2].Resize(UBound(a)) = a
  [A2].CurrentRegion.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess
  On Error Resume Next
  Range("B2:B65000").SpecialCells(xlCellTypeConstants, 2).EntireRow.Delete
  Columns("b:b").Delete Shift:=xlToLeft
End Sub

JB
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…