Supprimer lignes en fonction des codes

Bonjour le forum

j'aurais besoin de vos lumières

j'ai un fichier excel avec 2 onglets :

le premier "liste des codes a suppr"

le 2e "Base"

je ne sais pas si c'est possible à faire mais si oui, je gagnerais enormément de temps car jusqu'ici je le fais a la main, code par code et ligne par ligne ...

-> j'aimerais (grâce à une formule ou macro) que dans un nouvel onglet, si on trouve un code dans l'onglet "liste des codes a suppr" et qu'il y est aussi dans l'onglet "base", on supprime la ligne entière

je vous ai mis le fichier en pj.

savez-vous comment faire ?

Merci d'avance pour votre aide

Cdt,

Momo

Bonjour

Code Module

Sub Supprime()
Application.ScreenUpdating = False
Dim MaCellule As Object, i As Byte
For Each MaCellule In Range("D2", Range("D2").End(xlDown))
On Error Resume Next
i = Application.WorksheetFunction.Match(MaCellule.Value, Sheets("Liste-codes-a-supp").Range("A2:A100"), 0)
MaCellule.EntireRow.Delete
Next MaCellule
End Sub

Cordialement

Bonjour

Comme tu as 2007, avec un filtre multiple

Ok, super ça fonctionne !!!

Si vous avez 2 min, Est ce que vous pourriez m'expliquer vos codes que je puisse me coucher moins bete et apprendre un peu...

car je suis débutante en VBA, j'apprend sur le tas et ce n'est pas toujours facile de comprendre pourquoi utiliser tel ou tel code de macro

en tout cas un grand grand merci !!! vous me faites gagner enormément de temps car j'ai plus de 900 codes a supprimer tous les mois et je mettais 3 jours !!! la c'est hyper rapide !!!

Bonjour

Momo91 a écrit :

Si vous avez 2 min

Moi j'ai 2 minutes, mais en fonction de ton niveau est-ce que 2 minutes vont suffirent

A mes débuts il me fallait plus que ça (et des fois même maintenant)

Quelques commentaires dans le code

Bonjour

Je prends aussi 2 mn

Sub Supprime()
'On bloque le rafraichissement de l'écran
Application.ScreenUpdating = False
'On défini le type pour chaque variable utilisée
Dim MaCellule As Object, i As Byte
'On parcourt toutes les cellules de la colonne D
For Each MaCellule In Range("D2", Range("D2").End(xlDown))
' Au cas ou la fonction qui suit affiche une valeur d'erreur, on passe à la cellule suivante
On Error Resume Next
'On définit la variable i qui donne le No de la ligne correspondant au code avec une fonction equiv
i = Application.WorksheetFunction.Match(MaCellule.Value, Sheets("Liste-codes-a-supp").Range("A2:A100"), 0)
' Equiv donne le No de la ligne à effacer
MaCellule.EntireRow.Delete
'On passe à la ligne suivante
Next MaCellule
End Sub

Cordialement

oki, je comprend un peu mieux maintenant ))))

c'est sûre qu'on a jamais fini d'apprendre avec les macros c'est tellement particulier.

En tout cas, merci encore pour votre réponse rapide et hyper efficace !!!

je suis vraiment hyper hyper contente !

Cdt,

Morgane

Rechercher des sujets similaires à "supprimer lignes fonction codes"