Supprimer ligne sous condition [Résolu]

maggg 7 Messages postés jeudi 1 mai 2008Date d'inscription 23 mai 2008 Dernière intervention - 22 mai 2008 à 14:06 - Dernière réponse : maggg 7 Messages postés jeudi 1 mai 2008Date d'inscription 23 mai 2008 Dernière intervention
- 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" ?

Merci d'avance pour votre aide.

maggg
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 22 mai 2008 à 14:25
3
Merci
arf, suis allé trop vite :

<strike>If Plage.Cells(J).Value <> "1115" Then rows(J).Delete</strike>
If range("AI" & J).Value <> "1115" Then rows(J).Delete

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA

Merci mortalino 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de mortalino
Meilleure réponse
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 22 mai 2008 à 15:30
3
Merci
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
@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA

Merci mortalino 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de mortalino
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 22 mai 2008 à 14:24
0
Merci
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

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Commenter la réponse de mortalino
maggg 7 Messages postés jeudi 1 mai 2008Date d'inscription 23 mai 2008 Dernière intervention - 22 mai 2008 à 15:26
0
Merci
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
Commenter la réponse de maggg
maggg 7 Messages postés jeudi 1 mai 2008Date d'inscription 23 mai 2008 Dernière intervention - 23 mai 2008 à 11:09
0
Merci
Merci Mortalino
Super

maggg
Commenter la réponse de maggg

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.