Excel supprimer ligne si couleur

Résolu
james405 Messages postés 173 Statut Membre -  
james405 Messages postés 173 Statut Membre -
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. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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
  2. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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
  3. james405 Messages postés 173 Statut Membre
     
    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
  4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      Merci gbinforme, c'est enregistré.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. james405 Messages postés 173 Statut Membre
     
    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
  7. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  8. james405 Messages postés 173 Statut Membre
     
    Tout fonctionne merci !!!!!!!!!!!!!!!!!!!!!!!!!
    0