maggg
Messages postés7Date d'inscriptionjeudi 1 mai 2008StatutMembreDernière intervention23 mai 2008
-
22 mai 2008 à 14:06
maggg
Messages postés7Date d'inscriptionjeudi 1 mai 2008StatutMembreDernière intervention23 mai 2008
-
23 mai 2008 à 11:09
Bonjour,
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" ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 22 mai 2008 à 15:30
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
@++
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 22 mai 2008 à 14:24
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
maggg
Messages postés7Date d'inscriptionjeudi 1 mai 2008StatutMembreDernière intervention23 mai 2008 22 mai 2008 à 15:26
Merci Mortalino,
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 ?