Macro Suppression conditionnelle

Fermé
laptitepero Messages postés 19 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 9 avril 2010 - 9 avril 2010 à 15:36
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 9 avril 2010 à 17:06
Bonjour,

Je cherche une macro particuliere : J'aimerai supprimer toutes les lignes de mon tableau,
qui ont dans la colonne C le chiffre 2.
J'ai regardé un peu les réponses déjà existantes mais rien de concret pour moi :-(

Merci.

A voir également:

3 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 avril 2010 à 16:22
Bonjour,

Dim cel
Dim plage As Range
Dim lig As Long

    Set plage = Worksheets(1).Range("C:C")
    
    For Each cel In plage
        If cel.Value = 2 Then
            lig = cel.Row
            Rows(lig).Delete
        End If
    Next cel


Je n'ai pas testé mais ça devrait le faire.

;o)
0
laptitepero Messages postés 19 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 9 avril 2010
9 avril 2010 à 16:44
Arf, ça ne marche, j'ai dpu passer à côté de qq chose :

Sub SuppLigne2()
Dim plage As Range
Dim lig As Long

Set plage = Worksheets(1).Range("C:C")

For Each cel In plage
If cel.Value = 2 Then
lig = cel.Row
Rows(lig).Delete
End If
Next cel
End If
End Sub
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 avril 2010 à 17:00
Ici il y a un End If de trop ... juste après Next Cel

Ensuite, tes cellules de la colonne C sont-elles bien numérique ?

Chez moi ça fonctionne.
0
laptitepero Messages postés 19 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 9 avril 2010
9 avril 2010 à 16:55
J'ai trouvé un début de réponse, peux-tu m'aider à finir ?
Voici la macro qui fonctionne pour la feuille 1 :
Sub suppr_ligne_non_Colonne_C()
Dim i As Integer, derniereligne As Integer
derniereligne = Range("C65536").End(xlUp).Row
For i = derniereligne To 1 Step -1
If Cells(i, 3).Value = "1" Then
Rows(i).Delete
End If
Next
End Sub

A présent, j'aimerai qu'elle supprime la ligne sur tous le classeur (par ex, si je supprime la ligne 4, ca supprime la ligne 4 des autres feuilles 2 et 3 du classeur)

Je pensais faire comme ça :

Sub suppr_ligne_non_Colonne_C()
Dim i As Integer, derniereligne As Integer
derniereligne = Range("C65536").End(xlUp).Row
For i = derniereligne To 1 Step -1
If Cells(i, 3).Value = "1" Then
Rows(i).Delete
Sheets("Feuille2").Rows(lig).Delete
Sheets("Feuille3").Rows(lig).Delete
End If
Next
End Sub


mais ça a buggé./............
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 avril 2010 à 17:06
celle là fonctionne aussi chez moi :

Sub suppr_ligne_non_Colonne_C()
Dim i As Integer
Dim derniereligne As Integer
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws3 As Worksheet

    Set ws1 = Worksheets(1)
    Set ws2 = Worksheets(2)
    Set ws3 = Worksheets(3)
    
    derniereligne = ws1.Range("C65536").End(xlUp).Row
    For i = derniereligne To 1 Step -1
        If ws1.Cells(i, 3).Value = "1" Then
            ws1.Rows(i).Delete
            ws2.Rows(i).Delete
            ws3.Rows(i).Delete
        End If
    Next i
    
    Set ws1 = Nothing
    Set ws2 = Nothing
    Set ws3 = Nothing
    
End Sub


;o)
0