1 pièce(s) jointe(s)
[RESOLU] - [VBA / EXCEL 365] Boucle pour supprimer si une cellule contient une valeur cible
Bonjour,
J'ai un classeur qui contient une date de trop sur toutes les feuilles. Le problème c'est que cette date doit être supprimer car elle génère des erreurs lié aux valeurs qui sont sur la même ligne. Il me faut donc supprimer toutes les lignes qui sont sur cette date.
Je voulais savoir si vous pouviez m'aider sur ma macro. Je cherche à scanner chaque feuille qui contient la date concernée et qui, peu importe la position de la celulle, me supprimer la ligne entière de la cellule.
Je ne peux pas vous donner l'ensemble du fichier avec toutes les données, je vous ai donc fait une copie simplifiée avec 3 feuilles pour illustrer mon propos.
J'ai également commencer une macro, mais je bloque :
Je souhaite supprimer toutes les lignes dont la date est le 26 décembre, formaté "26-déc"
Si il y a déjà un article traité à ce sujet, je serais ravie d'avoir le lien :)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Sub Supprimer()
Dim Ws As Worksheet
For Each Ws In Worksheets
Cells.Find(What:="26-déc", After:=ActiveCell, LookIn:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveSheet.Rows(ActiveCell.Row).EntireRow.Delete
Next
MsgBox "Les cellules ont été supprimées"
End Sub |
Sauf qu'il me manque l'objet . J'ai donc rajouté la variable
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Sub Supprimer()
Dim Ws As Worksheet
Dim Cell As Range
For Each Ws In Worksheets
'La colonne de date peut varier d'une feuille à une autre, c'est un gros fichier d'entreprise, donc je ne voulais pas définir de plage particulière, simplement que la boucle s'arrête une fois que toutes les dates sont supprimées
For Each Cell In Range("A:AR")
Cells.Find(What:="26-déc", After:=ActiveCell, LookIn:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveSheet.Rows(ActiveCell.Row).EntireRow.Delete
Next Cell
Next Ws
MsgBox "Les cellules ont été supprimées"
End Sub |
Mais cela ne marche toujours pas. J'ai toujours l'erreur 91.
Merci à vous.