VBA pour supprimer des lignes en fonction de données

Bonjour à tous et à toutes,

Je me tourne vers vous pour trouver une solution à mon problème. Celui-ci est le suivant :

Dans ma feuille Excel, se trouve des données. J'aimerai supprimer toutes les lignes pour lesquelles la colonne B n'affiche pas "EPOX-MA-HEURE" ou "EPOX-MA-HEURE-THYRO" ou "POLY-MO-MECA".

Merci d'avance pour votre aide précieuse,

Cordialement,

AlphaFaure

9classeur-test.xlsx (25.94 Ko)

Bonjour,

Voici une proposition avec un filtre avancé

A+

10classeur-test.xlsm (34.93 Ko)

ça m'aide pas mal mais le problème est que des EPOX-MA-HEURE-... j'en ai une dizaine, et tout cela est extrait grâce à un langage SQL qui se situe au niveau de la cellule A10 sur mon classeur normal. Le classeur test est juste pour essayé de trouver une macro ou vba qui fonctionnerait.

Merci en tout cas, je vais essayer de chercher de mon côté aussi

Bonjour.

Essai ceci

Sub SUPPRIMER()

Dim i As Long
    For i = [B65536].End(xlUp).Row To 1 Step -1
        If Not Cells(i, 2) Like "EPOX-MA-HEURE" Or Cells(i, 2) Like "EPOX-MA-HEURE-THYRO" Or Cells(i, 2) Like "POLY-MO-MECA" Then
            Rows(i).EntireRow.Delete
        End If
    Next

End Sub

normalement ça marche

Bonjour,

Ta macro me fait remonter toutes les lignes vers le haut, or je voudrais que la première ligne reste à sa place

Sub supprimer()
Application.ScreenUpdating = False
Dim i As Long
    For i = [B65536].End(xlUp).Row To 2 Step -1
        If Cells(i, 2) Like "EPOX-MA-HEURE" Or Cells(i, 2) Like "EPOX-MA-HEURE-THYRO" Or Cells(i, 2) Like "POLY-MO-MECA" Then
        ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
        Else
            Rows(i).EntireRow.Delete
        End If
    Next
End Sub

si tu as besoin de laisser plus de place il suffit de changer le "2" dans "For i = [B65536].End(xlUp).Row To 2 Step -1"

Parfait, ça fonctionne et j'ai tout compris,

Je vous remercie pour votre aide!

A bientôt

Rechercher des sujets similaires à "vba supprimer lignes fonction donnees"