Excel supprimer ligne si couleur

Résolu
james405 Messages postés 154 Date d'inscription   Statut Membre Dernière intervention   -  
james405 Messages postés 154 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout est dans le titre, si la couleur de ma cellule est verte je veux supprimer toute la ligne.

J('avais pensé a cel mais ca ne marche pas (je débute en macro!)
Merci pour votre aide

Sub car()
Dim i
For i = 1 To 2000
If Worksheets(1).Range("A" & i).Interior.ColorIndex = 6 Then Range("A" & i)Row.Delete
Next i
End Sub


James405
A voir également:

7 réponses

Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
C'est étrange chez moi c'est correct.
Essayer cette procédure:
Sub supprimerligne()
Dim i As Long
For i = 1 To 2000
    If Cells(i, 1).Interior.ColorIndex = 6 Then
        Rows(i).Delete
        i = i - 1
    End If
Next i
End Sub
--
Salutations.
Le Pingou
1
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Au passage remplacer la ligne du If par :
If Range("A" & i).Interior.ColorIndex = 6 Then Rows(i).Delete

Autre possibilité:
Sub supprimerligne()
For Each c In Range("a1:a2000")
 If c.Interior.ColorIndex = 6 Then c.Rows.Delete
Next c
End Sub
--

Salutations.
Le Pingou
0
james405 Messages postés 154 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir,

Sub carrièresss()
Dim i
For i = 1 To 2000
If Range("A" & i).Interior.ColorIndex = 6 Then Rows(i).Delete
Next i
End Sub

FOnctionne, mais je suis obliger d'appuyer plusieurs fois sur la macro pour tous les enlever ...

et l'autre ne fonctionne pas . .. une explication ?

Merci pour ton aide pingou
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Pour supprimer des lignes sans se préoccuper des lignes supprimées qui modifient l'index le plus simple est de supprimer en remontant :

Sub car() 
Dim i as Long 
For i =  2000 to 1 step -1 
     If Worksheets(1).Range("A" & i).Interior.ColorIndex = 6 Then Rows(i).Delete 
Next i 
End Sub 


Toujours zen
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Merci gbinforme, c'est enregistré.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
james405 Messages postés 154 Date d'inscription   Statut Membre Dernière intervention  
 
ET ca marche !!!!!!!!

Merci à vous deux !!!!

SI je mets avec plusieurs couleurs cela marchera aussi?

Sub car()
Dim i as Long
For i = 2000 to 1 step -1
If Worksheets(1).Range("A" & i).Interior.ColorIndex = 6 Then Rows(i).Delete
If Worksheets(1).Range("A" & i).Interior.ColorIndex = 9 Then Rows(i).Delete
Next i
End Sub

Bonne journée à vous,

Cordialement,

James
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

SI je mets avec plusieurs couleurs cela marchera aussi?

Bien sûr que tu peux enchainer les tests et pour des modifications plus faciles, tu peux l'écrire ainsi et il te suffit de rajouter les conditions que tu veux sélectionner

Sub car()
Dim i As Long
For i = 20 To 1 Step -1
    Select Case Worksheets(1).Range("A" & i).Interior.ColorIndex
        Case 6, 9
            Rows(i).Delete
        Case Else
    End Select
Next i
End Sub
0
james405 Messages postés 154 Date d'inscription   Statut Membre Dernière intervention  
 
Tout fonctionne merci !!!!!!!!!!!!!!!!!!!!!!!!!
0