Comment supprimer des lignes avec une macro

LAFCO

XLDnaute Nouveau
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
 

Efgé

XLDnaute Barbatruc
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

  • test_ok(7).xls
    55.5 KB · Affichages: 48
Dernière édition:

casper64

XLDnaute Nouveau
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

  • test(08).xls
    142.5 KB · Affichages: 57

Efgé

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
40
Affichages
1 K
Réponses
22
Affichages
920

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12