Excel supprimer ligne si couleur

Résolu
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

7 réponses

  1. 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
    1. 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
      1. 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
        1. Contributeur
          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
          1. Merci gbinforme, c'est enregistré.
            0
        2. 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
          1. Contributeur
            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
            1. Tout fonctionne merci !!!!!!!!!!!!!!!!!!!!!!!!!
              0