Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer ligne si condition

  • Initiateur de la discussion Initiateur de la discussion elodon
  • 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 !

E

elodon

Guest
Bonjour,
Je recherche une macro ou apprendre à faire une macro qui me permet de supprimer des lignes d'un tableau si plusieurs conditions, soit :

- Supprimer les Lignes qui sont barrées
- Soit les lignes dont la valeur dans la dernière colonne ont comme valeur "Non"

Et appliquer cette macro sur la feuille sélectionnée. Et non pas sur le classeur entier

Merci d'avance, en espérant trouver quelqu'un qui sache m'aider
 
Re : Supprimer ligne si condition

Bonjour Elodon

regarde le code ci-dessous, supprime la ligne si dans la dernière colonne renseigné il y a "NON", peu importe la casse.

A noter, l'utilisation de la colonne A pour déterminer la dernière ligne du tableau, à adapter selon le cas.

Code:
Option Explicit
Sub test()
Dim i As Integer
For i = Range("A65536").End(xlUp).Row To 1 Step -1
    If UCase(Range("IV" & i).End(xlToLeft).Value) = "NON" Then Rows(i).Delete
Next i
End Sub

bonne journée
@+
 
Re : Supprimer ligne si condition

Re elodon ami Pierrot🙂, le Forum

Et pour ce qui est des Lignes Barrées et, Couplée à l'excellent code de Pierrot j'aienlevélemiencarilm'auraisencoretraitédecopieur 😀 Même pas vrai j'étais en train de chercher 😱 Heureusement que j'avais rafraichis l'écran


Code:
Option Explicit

Sub test()
Dim i As Integer, C As Range
    For i = Range("A65536").End(xlUp).Row To 1 Step -1
        For Each C In Range("A1:A" & Range("A65536").End(xlUp).Row)
            If UCase(Range("IV" & i).End(xlToLeft).Value) = "NON" Then Rows(i).Delete
            If C.Font.Strikethrough = True Then C.EntireRow.Delete
        Next C
    Next i
End Sub

Bonne Journée
 
Re : Supprimer ligne si condition

Donc, j'ai essayé de mettre en application ta macro
mais je n'y arrive pas
je te transmet mon fichier, afin que tu puisse me montrer la manip
je te remercie d'avance
 
Re : Supprimer ligne si condition

Donc, j'ai essayé de mettre en application ta macro
mais je n'y arrive pas
je te transmet mon fichier, afin que tu puisse me montrer la manip
je te remercie d'avance
 

Pièces jointes

Dernière modification par un modérateur:
Re : Supprimer ligne si condition

Bonsoir Elodon, Dull🙂

modifies avec le code ci-dessous :

Code:
Option Explicit
Sub test()
Dim i As Integer
For i = Range("K65536").End(xlUp).Row To 12 Step -1
    If UCase(Range("IV" & i).End(xlToLeft).Value) = "NON" Then Rows(i).Delete
Next i
End Sub

bonne soirée
@+
 
Re : Supprimer ligne si condition

Cool merci, cela marche très bien dans le tableau suivant , c'est parfait!

Par contre, dsl, si je suis chiant, mais il ne passe pas dans le nouveau tableau excel que j'ai créé
j'ai pourtant remplacer la valeur "K65536" par "Y65536" , ou se trouve maintenant les valeurs "non" dans la colonne Y
et rien ne fais

Que dois-je modifier pour que cela marche sur celui ci?Dois changer quelque chose à ta ta macro?
 
Re : Supprimer ligne si condition

Bonjour Elodon

as tu aussi éventuellement modifié le "12", qui correspond à la première ligne testée ?

Code:
For i = Range("K65536").End(xlUp).Row To [B][COLOR="Red"]12[/COLOR][/B] Step -1

A noter, que sans précision du nom de la feuille, ce code s'applique à la feuille active.

bon après midi.
@+
 
Re : Supprimer ligne si condition

Re,

le code donné recherchait la dernière colonne cf ta demande initiale...


en fait il faut cibler la colonne Y, code ci-dessous modifié, devrait mieux fonctionner :
Code:
Sub test()
Dim i As Integer
For i = Range("Y65536").End(xlUp).Row To 12 Step -1
    If UCase(Range("Y" & i).Value) = "NON" Then Rows(i).Delete
Next i
End Sub

@+
 
Re : Supprimer ligne si condition

Salut Elodon, Pierrot 🙂, le Forum

Deux Soucis dans ton Fichier
non 1 puisque tu a remplacer K par Y 😛


Code:
If UCase(Range("IV" & i).End(xlToLeft).Value) = "NON" Then Rows(i).Delete
veux dire:

Si la cellule immédiatement non vide depuis la dernière colonne (IV) est = à NON alors la supprimer la Ligne

La dernière colonne non Vide contient "A revoir", "Ok"

Essaye alors
Code:
If UCase(Range("AA" & i).End(xlToLeft).Value) = "NON" Then Rows(i).Delete
et ca devrait aller

EDITION: Arf Pierrot 🙂 suis toujours en bas débit 😛 Heu...commentçaj'mejustifie? 😉
RE EDITH: Même pas penser à cibler la colonne Y 😱
Bonne Journée
 
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
372
Réponses
1
Affichages
178
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…