Supprimer ligne en fonction valeur de cellule

Résolu/Fermé
Alaindeg Messages postés 33 Date d'inscription mardi 16 septembre 2014 Statut Membre Dernière intervention 8 juin 2016 - 16 avril 2015 à 15:40
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 - 16 avril 2015 à 16:05
Bonjour à tous,

Lien fichier: https://www.cjoint.com/c/EDqpYzB3qkH

J'ai fais la macro suivante mais elle ne fonctionne pas:

Sub Suppr()
Dim i As Long
Dim Plage As String

For i = 2 To 65536
If Cells(i, 5).Value = Chr(34) Then
Plage = i & "Annulé" & i
Rows(Plage).Delete Shift:=xlUp
i = i - 1
End If
Next i
End Sub

Je voudrais supprimer les lignes qui contiennent en colonne "statut" les mots annulés ou non réalisés..

Mais j'ai beau executer et cela ne fonctionne pas.

Pourriez-vous m'aider à trouver la solution?

Merci pour votre aide!!

Alain


A voir également:

1 réponse

Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
Modifié par Thorak83 le 16/04/2015 à 15:50
Bonjour,

normal le problème car faire une boucle for i=... et à l'intérieur faire i = i-1 il va pas du tout aimer
faire plutot une boucle while
i = 2
While i <= 65536
...
wend


Cordialement
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
16 avril 2015 à 15:51
Sub Suppr()
  Dim i As Long
  Dim Plage As String
  
  i = 2
  While i <= 65536
    If Cells(i, 5).Value = Chr(34) Then
      Plage = i & "Annulé" & i
      Rows(Plage).Delete Shift:=xlUp
      i = i - 1
    Else
      i = i + 1
    End If
  Wend
End Sub
0
Alaindeg Messages postés 33 Date d'inscription mardi 16 septembre 2014 Statut Membre Dernière intervention 8 juin 2016
16 avril 2015 à 15:52
Merci pour votre réponse si rapide. Je viens de mettre ceci:
Sub Suppr()
Dim i As Long
Dim Plage As String

For i = 2 To 65536
If Cells(i, 5).Value = Chr(34) Then
Plage = i & "Annulé" & i
Rows(Plage).Delete Shift:=xlUp
i = 2
While i < 65536
Wend
End If
Next i
End Sub

Mais ça ne marche pas non plus. J'avoue ne pas vraiment maitriser les boucles While.. Dois-je mettre quelque chose entre While et wend en plus?
0