Suppression de lignes automatique

Résolu
BAUHAUS44 Messages postés 50 Date d'inscription samedi 19 août 2006 Statut Membre Dernière intervention 17 juillet 2010 - 18 mai 2007 à 14:15
BAUHAUS44 Messages postés 50 Date d'inscription samedi 19 août 2006 Statut Membre Dernière intervention 17 juillet 2010 - 20 mai 2007 à 10:40
Bonjour,

Je suis entrain de créer une macro pour l’utiliser sur un fichier excel. Je fais rechercher dans ce fichier, via la macro, un texte (TOTO par exemple) dans une colonne donnée (la 1 par exemple), des lignes 2 à 49. Lorsque la macro trouve ce texte, elle me met « OK » dans la colonne 2 de la ligne contenant le texte. Pour cela j’utilise la programmation suivante :

Worksheets("Feuil1").Select
For i = 2 To 49 Step 1
If Cells(i, 1).Value - "TOTO" Then
Cells(i, 2).Value = "OK"
End If
Next i

Lorsque je veux faire la même chose, sauf que cette fois-ci je veux non plus écrire OK mais sélectionner la ligne contenant le texte et la supprimer, comment dois-je m’y prendre ?

Worksheets("Feuil1").Select
For i = 2 To 49 Step 1
If Cells(i, 1).Value - "TOTO" Then
Rows( ??, ??).Select
Selection. Delete
End If
Next i

Merci d’avance à ceux qui pourront m’aider

Bauhaus44

4 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
18 mai 2007 à 21:55
Par contre, ton code est faux. Déjà le Step 1, il est par défaut, mais bon, pas génant.
Par contre, vu que la ligne est supprimée, les autres au dessous remonte, et ta boucle s'incrémente de 1, donc à chaque suppresion, tu passeras au travers d'une ligne.

Procède à l'envers (en partant du bas) :

For i = 49 To 2 Step -1
     If Cells(i, 1).Value = "TOTO" Then
     Rows(i).Delete
     End If
Next i

@++

<hr size ="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
BAUHAUS44 Messages postés 50 Date d'inscription samedi 19 août 2006 Statut Membre Dernière intervention 17 juillet 2010
18 mai 2007 à 14:25
Ca sera peut-être plus clair comme ça

Bonjour,
Je suis entrain de créer une macro pour l'utiliser sur un fichier excel. Je fais rechercher dans ce fichier, via la macro, un texte (TOTO par exemple) dans une colonne donnée (la 1 par exemple), des lignes 2 à 49. Lorsque la macro trouve ce texte, elle me met « OK » dans la colonne 2 de la ligne contenant le texte. Pour cela j'utilise la programmation suivante :
Worksheets("Feuil1").Select
For i = 2 To 49 Step 1
If Cells(i, 1).Value = "TOTO" Then
Cells(i, 2).Value = "OK"
End If
Next i

Lorsque je veux faire la même chose, sauf que cette fois-ci je veux non plus écrire OK mais sélectionner la ligne contenant le texte et la supprimer, comment dois-je m'y prendre ?
Worksheets("Feuil1").Select
For i = 2 To 49 Step 1
If Cells(i, 1).Value = "TOTO" Then
Rows( ??, ??).Select
Selection. Delete
End If
Next i

Merci d'avance à ceux qui pourront m'aider

Bauhaus44
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
18 mai 2007 à 21:53
salut,

For i = 2 To 49 Step 1
     If Cells(i, 1).Value = "TOTO" Then
     Rows(i).Delete
     End If
Next i

tout simplement

@++

<hr size ="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
BAUHAUS44 Messages postés 50 Date d'inscription samedi 19 août 2006 Statut Membre Dernière intervention 17 juillet 2010
20 mai 2007 à 10:40
Bonjour et merci pour ton aide Mortalino.

Bauhaus44
0
Rejoignez-nous