Macro Suppression conditionnelle
laptitepero
Messages postés
19
Statut
Membre
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
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.
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.
3 réponses
-
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) -
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 -
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é./............-
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)
-