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
11
Affichages
196

Statistiques des forums

Discussions
297 998
Messages
1 964 984
Membres
200 793
dernier inscrit
marcovit