Comment supprimer des lignes avec une macro

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

L

LAFCO

Guest
Bonjour,

J'ai un fichier avec 5 colonnes. Les colonnes 2, 3 et 4 comportent des chiffres et lorsque sur une ligne les 3 cellules des colonnes 2, 3 et 4 sont à zéro il faudrait que cette ligne se supprime.

Comment faire avec une macro ?

Merci pour votre réponse.

Lafco
 
Re : Comment supprimer des lignes avec une macro

en effet, j'avais pas vu cette différence 😱
la vrai formule est =SI(OU(OU(A2 < $D$1;A2 > $E$1);OU(B2 < $F$1;B2 > $G$1));"";1)

Merci Efgé pour tous tes commentaires !!!
 
Re : Comment supprimer des lignes avec une macro

Re,
Le code modifié pour tenir compte de la nouvelle formule (sois dit en passant
=SI(OU(A2 < $D$1; A2 > $E$1; B2 < $F$1; B2 > $G$1);"";1) est suffisant, il me semble)
Pour terminé, si tu veux modifier le critère (donc la formule) c'est la condition IF du code qu'il faudra ajuster.
VB:
Private Sub CommandButton1_Click()
Dim I&, J&, K&, MinA&, MaxA&, MinB&, MaxB&, T As Variant
K = 1

With Sheets("Feuil1")
    MinA = .[d1]:   MaxA = .[e1]
    MinB = .[f1]:    MaxB = .[G1]
    T = .Range("A1:B" & .Cells(Rows.Count, 1).End(xlUp).Row)
End With
    
For I = 2 To UBound(T, 1)
    If Not (T(I, 1) < MinA Or T(I, 1) > MaxA Or _
        T(I, 2) < MinB Or T(I, 2) > MaxB) Then
            K = K + 1
            For J = 1 To UBound(T, 2)
                T(K, J) = T(I, J)
            Next J
    End If
Next I

Application.ScreenUpdating = False
Columns(1).Resize(, UBound(T, 2)).ClearContents
Range("A1").Resize(K, UBound(T, 2)) = T
Application.ScreenUpdating = True
End Sub
Cordialement
 

Pièces jointes

Dernière édition:
Re : Comment supprimer des lignes avec une macro

Bonjour à tous,
je vous remercie de tous vos efforts (surtout Efgé) et le dernier code marche très bien.
Le truc c'est qu'en voulant finaliser tous mes calculs, je me rend compte qu'il y a un tout petit truc à compléter :
vous verrez dans la pièce jointe, il faut que pour que l'affichage se fasse bien dans la Feuil2, il faut aussi que dans la Feuil1, les lignes qui contiennent 0 dans la colonne C ne soit pas prise en compte.
Celà se traduit par la formule en colonne D : =SI(OU(OU(A2<$D$1;A2>$E$1);OU(B2<$F$1;B2>$G$1);C2=0);"";1)

Est ce que vous pouvez adapter les lignes de codes du message précédent?

Merci et @+ ! 🙂
 

Pièces jointes

Re : Comment supprimer des lignes avec une macro

Bonjour
Voici la condition a employer
VB:
If Not (T(I, 1) < MinA Or T(I, 1) > MaxA Or _
        T(I, 2) < MinB Or T(I, 2) > MaxB Or T(I, 3) = 0) Then
Mais il serait plus utile que tu cherches à comprendre le code plutot que d'être obligé de revenir pour chawque modification de ta formule... ... non ?
Cordialement
 
- 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
165
Réponses
19
Affichages
757
Réponses
18
Affichages
619
Réponses
3
Affichages
315
Retour