Excel supprimer ligne si couleur

Résolu/Fermé
james405 Messages postés 154 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 10 juin 2014 - 9 avril 2010 à 14:14
james405 Messages postés 154 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 10 juin 2014 - 15 avril 2010 à 17:11
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 12177 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 31 octobre 2024 1 448
12 avril 2010 à 18:21
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 12177 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 31 octobre 2024 1 448
Modifié par Le Pingou le 9/04/2010 à 21:40
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 mercredi 27 janvier 2010 Statut Membre Dernière intervention 10 juin 2014
12 avril 2010 à 17:47
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 704
Modifié par gbinforme le 12/04/2010 à 22:57
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 12177 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 31 octobre 2024 1 448
12 avril 2010 à 20:22
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 mercredi 27 janvier 2010 Statut Membre Dernière intervention 10 juin 2014
13 avril 2010 à 09:05
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 704
13 avril 2010 à 09:39
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 mercredi 27 janvier 2010 Statut Membre Dernière intervention 10 juin 2014
15 avril 2010 à 17:11
Tout fonctionne merci !!!!!!!!!!!!!!!!!!!!!!!!!
0