Supprimer ligne selon choix colonne

  • Initiateur de la discussion Initiateur de la discussion georgioGD
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

georgioGD

Guest
Bonjour à tous,

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

Merci à vous
 

Pièces jointes

Re : Supprimer ligne selon choix 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
 
Dernière édition:
Re : Supprimer ligne selon choix colonne

Bonsoir le fil, georgioGD

Un exemple avec ColumnDifferences
Code:
Sub b()
 
    [B5] = "O"
 
    On Error Resume Next
    Union([B5], [Imprime]).ColumnDifferences([B5]).EntireRow.Delete xlUp
 
    [B5].ClearContents
 
End Sub
Je te laisse sélectionner la feuille qui va bien.

A plus

Edition : Bonsoir Efgé, Excel-lent 🙂
 
Dernière édition:
Re : Supprimer ligne selon choix colonne

Salut GeorgioGD,

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!

A te lire

Cordialement

Edition : bonjour Efgé, Soenda
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
629
Retour