Qui pourrait m'aider à faire une macro ?
J'ai un tableau où dans la colonne AI, j'ai une liste de code (10 codes différents).
Je ne veux garder que les lignes avec le code "1115", toutes les autres lignes doivent être effacées.
Pour effacer des lignes qui contiennent un code précis, j'utilise :
Dim J As Long
Dim Plage As Range
Set Plage = Range ("AI5", range("AI65536").End(xlup))
For J = Plage.Cells.Count To 1 Step -1
If Plage.Cells(J).Value = "1115" Then
Plage.Cells(J).EntireRow.Delete
End If
Mais je ne sais pas comment formuler pour dire que le contenu de la cellule doit être différent de "1115" ?
ok, au cas où, avec mon code, ça aurait donné ca (une seule modif) :
Dim J As Long
Dim DerLigne As long
DerLigne = range("AI65536").End(xlup).row
For J = DerLigne To 4 Step -1
If range("AI" & J).Value <> "1115" Then rows(J).Delete
next J
DerLigne contient le numéro de la dernière ligne utilisé de la colonne AI
@++
Dim J As Long
Dim DerLigne As long
DerLigne = range("AI65536").End(xlup).row
For J = DerLigne To 1 Step -1
If Plage.Cells(J).Value <> "1115" Then rows(J).Delete
next J
En appliquant ta proposition, j'ai rencontré un petit souci parce que les 4 premières lignes du fichier sont des lignes titres qui ne doivent pas disparaître.
Et donc les cellules AI1, AI2, AI3 et AI4 ne contenant rien disparaissent également.
C'est pour cela qu'en mentionnant "Set Plage = Range ("AI5", range("AI65536").End(xlup))", je protégeais mes 4 premières lignes.
Donc en attendant, et n'ayant jamais travaillé avec DerLigne, pour avoir un résultat, j'ai adapté comme ceci :
Dim J As Long
Dim Plage As Range
Set Plage = Range("AI5", Range("AI65536").End(xlUp))
For J = Plage.Cells.Count To 1 Step -1
If Plage.Cells(J).Value <> "1115" Then
Plage.Cells(J).EntireRow.Delete
End If
Cela fonctionne parfaitement.
Merci pour ton aide
maggg
Vous n’avez pas trouvé la réponse que vous recherchez ?