Supprimer ligne en fonction valeur de cellule [Résolu/Fermé]

Signaler
Messages postés
33
Date d'inscription
mardi 16 septembre 2014
Statut
Membre
Dernière intervention
8 juin 2016
-
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
-
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

Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
121
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
Messages postés
33
Date d'inscription
mardi 16 septembre 2014
Statut
Membre
Dernière intervention
8 juin 2016
>
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017

Non ça ne fonctionne pas, je ne comprends pas où est le problème
ce que j'ai fait: https://www.cjoint.com/c/EDqqjSixDEU
Messages postés
33
Date d'inscription
mardi 16 septembre 2014
Statut
Membre
Dernière intervention
8 juin 2016

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?
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
121
Désolé je me suis un peu loupé (j'ai pas fait assez attention à votre code)
voici le bon code
Sub Suppr()
  Dim i As Long
  Dim Plage As String
  
  i = 2
  While i <= 65536
    If Cells(i, 5).Value = "Annulé" Then
      Plage = i & ":" & i
      Rows(Plage).Delete Shift:=xlUp
    Else
      i = i + 1
    End If
  Wend
End Sub
Messages postés
33
Date d'inscription
mardi 16 septembre 2014
Statut
Membre
Dernière intervention
8 juin 2016

Ca fonctionne!! un immense merci!
Messages postés
1064
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
121
De rien