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

XL 2016 Suppression ligne selon un critère dans une colonne

Niko Las

XLDnaute Nouveau
Bonjour à tous,

Je sollicite votre aide pour une modification de macro, je ne les maitrise quasiment pas.

Voici le besoin :

Supprimer une ligne lorsque dans la colonne H il y a "x" ou "X".

J'ai adapté un modèle, qui semble fonctionner, mais je voudrais supprimer la référence à une feuille Excel au début de la macro, afin de pouvoir utiliser le bouton dans plusieurs feuilles sans dupliquer la macro.

Sub supp()
Dim i&, c

With Sheets("Acheteur A - Stock")
'si filtrage, on affiche toutes les lignes sinon le End(xlUp) risque d'être faux
If .FilterMode Then .ShowAllData
'dernière cellule non vide sur la colonne a
derlig = .Cells(Rows.Count, "a").End(xlUp).Row
'supprime la ligne si valeur colonne H contient X OU x
'en partant du bas
For i = derlig To 4 Step -1
c = Cells(i, "h")
If c Like "X" Or c Like "x" Then .Rows(i).Delete
Next i
End With
End Sub

Merci d'avance !
 
Solution
Bonjour Niko,
Il suffit de faire référence à la feuille active :
Code:
Sub supp()
Dim i&, c
With ActiveSheet
    'si filtrage, on affiche toutes les lignes sinon le End(xlUp) risque d'être faux
    If .FilterMode Then .ShowAllData
    'dernière cellule non vide sur la colonne a
    derlig = .Cells(Rows.Count, "a").End(xlUp).Row
    'supprime la ligne si valeur colonne H contient X OU x
    'en partant du bas
    For i = derlig To 4 Step -1
        c = Cells(i, "h")
        If c Like "X" Or c Like "x" Then .Rows(i).Delete
    Next i
End With
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Niko,
Il suffit de faire référence à la feuille active :
Code:
Sub supp()
Dim i&, c
With ActiveSheet
    'si filtrage, on affiche toutes les lignes sinon le End(xlUp) risque d'être faux
    If .FilterMode Then .ShowAllData
    'dernière cellule non vide sur la colonne a
    derlig = .Cells(Rows.Count, "a").End(xlUp).Row
    'supprime la ligne si valeur colonne H contient X OU x
    'en partant du bas
    For i = derlig To 4 Step -1
        c = Cells(i, "h")
        If c Like "X" Or c Like "x" Then .Rows(i).Delete
    Next i
End With
End Sub
 

Discussions similaires

Réponses
2
Affichages
329
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…