Supprimer des cellules à fond vert sur excel

Résolu/Fermé
balata9 - 16 juin 2010 à 16:08
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 16 juin 2010 à 17:45
Bonjour tout le monde,

Je souhaite, avec une macro associée à un bouton, supprimer les cellules dont le fond est vert pomme (code 4).

La plage de cellule sur laquelle doit s'appliquer la macro est $F$5:$L$20.

J'ai trouvé un code sur un forum, cependant il supprime toute la ligne alors que je ne veux supprimer que les cellules à fond vert et garder les autres cellules de la même ligne car il y a d'autres tableaux à côté.

Le code que j'ai trouvé est le suivant:

<code>Sub Test_2()
Derligne = Range("A" & Application.Rows.Count).End(xlUp).Row
For Each C In Range("$F$5:$L$20" & Derligne)
If C.Interior.ColorIndex = 4 Then C.EntireRow.Delete
Next C
End Sub<code>


Merci d'avance pour votre aide



A voir également:

5 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
16 juin 2010 à 17:09
Bonjour,

Un code plus simple à essayer :



Sub Test_2()
For Each C In Range("$F$5:$L$20")
    If C.Interior.ColorIndex = 4 Then
        C.ClearContents
        C.Interior.ColorIndex = xlNone
    End If
Next C
End Sub




J'ai supposé que la cellule ne doit plus être verte aprés l'effacement mais c'est peut-être pas utile..

A+

0
Merci pour ta réponse pilas31.

Ton code fonctionne, le problème c'est qu'il ne supprime que le contenu des cellules à fond vert alors que j'aimerais supprimer les cellules entières pour que les cellules du dessous se décalent vers le haut de manière à reformer une plage continue.
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
16 juin 2010 à 17:28
D'accord alors tu peux modifier comme cela :


For Each C In Range("$F$5:$L$20")
    If C.Interior.ColorIndex = 4 Then C.Delete Shift:=xlUp
Next C


0
Ok merci beaucoup! ça marche super bien.
0

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

Posez votre question
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
16 juin 2010 à 17:45
Re bonjour,

En réfléchissant, j'ai été un peu rapide car si plusieurs cellules vertes sont superposées il y a un problème. Je te propose alors de changer de syntaxe :


Sub Test_2()
For lig = 20 To 5 Step -1
    For col = 6 To 12
        If Cells(lig, col).Interior.ColorIndex = 4 Then Cells(lig, col).Delete Shift:=xlUp
    Next col
Next lig
End Sub



A+
0