Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Je joins un petit fichier ou j'explique mon probléme car d'une feuille étude je crée une feuille devis mais certaine lignes ne doivent pas apparaitrent et pour cela elle sont validé si different de OUI dans une colonne
Bonsoir georgioGD,
Pour supprimer les lignes dont la cellule en colonne B est égale à O:
Code:
Sub Delete()
Dim derlig As Long
derlig = Range("D" & Application.Rows.Count).End(xlUp).Row
For i = derlig To 2 Step -1
If [COLOR=red][B]Not[/B][/COLOR] Cells(i, 2).Value = "O" Then
Cells(i, 2).EntireRow.Delete
End If
Next i
End Sub
Pour votre exemple, il y à au moins une erreur: votre plage nomée prend un e Imprime Cordialement
Edit en rouge
Ton soucis vient du fait que balaye tes lignes du haut vers le bas!
Voici une macro qui répond à tes critères :
Code:
Sub Proposition1()
NbOnglet = ActiveWorkbook.Sheets.Count
Sheets("Feuil1").Copy Before:=Sheets(2)
Sheets(NbOnglet).Name = "Impression"
With Sheets("Impression")
For LigneImpression = 22 To 6 Step -1
If .Cells(LigneImpression, 2) <> "O" Then .Rows(LigneImpression).Delete
Next LigneImpression
End With
End Sub
Pourquoi il faut partir du bas vers le haut (avec l'utilisation de Step -1) et non pas l'inverse? Car tu supprime les lignes qui ...
Voici ce qu'il se passe quand tu traite tes lignes du haut vers le bas
-> tu traite la ligne 5, tout baigne donc tu passe à la ligne 6 (jusque là pas de problème)
-> tu traite la ligne 6, tu constate que la ligne 6 doit être supprimé donc tu la supprime
-> ensuite tu traite la ligne 7 (et là ca plante!!!)
Car lorsque tu as supprimé la ligne 6... la ligne 7 est devenu la ligne 6, et la ligne 8 est devenu la ligne 7.
Or comme tu traite la ligne 7 (l'ex. ligne 8), cela signifie que tu ne traite pas la ligne 6 (l'ex. ligne 7).
Alors qu'en traitant tes lignes du bas vers le haut, tu n'as pas ce soucis!
J'ai été clair?
Si cela peut t'aider, rajoute une colonne que tu nommera N° de ligne, et tu numérote tes lignes. Puis tu fais les opérations de suppression manuellement, tu verras que tes "vrai" numéro de ligne, ne seront plus en adéquation avec les numéro de ligne théorique!
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.