Supprimer des cellules à fond vert sur excel

Résolu
balata9 -  
pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Contributeur Dernière intervention   646
 
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
balata9
 
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   Statut Contributeur Dernière intervention   646
 
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
balata9
 
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   Statut Contributeur Dernière intervention   646
 
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