Supprimer ligne en fonction valeur de cellule

Résolu
Alaindeg Messages postés 35 Statut Membre -  
Thorak83 Messages postés 1140 Statut Membre -
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

1 réponse

  1. Thorak83 Messages postés 1140 Statut Membre 156
     
    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
    1. Thorak83 Messages postés 1140 Statut Membre 156
       
      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
    2. Alaindeg Messages postés 35 Statut Membre
       
      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