Couleur de cellule automatique sauf une couleur

Résolu
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   -  
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour le forum

Via une macro, je parviens à mettre en automatique la couleur de fond de mes cellules :

    With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With


Dans la même sélection, je cherche à exclure les cellules sur fond bleu de ce traitement automatique (.TintAndShade = -0.249977111117893)

Puis-je vous demander votre aide svp ?
Merci par avance !

Configuration: Windows / Excel 2016 / Firefox 77.0

6 réponses

Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour,

Essayez ceci
    If Selection.Interior.TintAndShade <> -0.249977111117893 Then
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If


Cdlt
1
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour,

Il faut mettre le code dans le module de la feuille et non dans un module standard.
De plus, il faut utiliser le ET et non le OU pour tester les couleurs.
Ensuite; si vous voulez tester directement une couleur avec les le N° d'index de la couleur, la syntaxe est ".ColorIndex <> 4"
Voici le code à coller dans le module de la feuille.
La sélection d'une des cellules de "MaZone", déclenchera la macro, tout autre cellule en dehors de "MaZone" ne sera pas prise en compte?
Private [https://www.commentcamarche.net/contents/446-fichier-sub Sub] Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("MaZone")) Is Nothing Then
        If Target.Interior.TintAndShade <> -0.249977111117893 And Target.Interior.ColorIndex <> 4 Then
            With Target.Interior
                .Pattern = xlNone
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
        End If
    End If
End Sub


Cdlt
1
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Si c'est à la demande via l'utilisation d'un bouton, alors voici la modif
Sub FondCellules()
    If Not Intersect(Selection, Range("MaZone")) Is Nothing Then
        If Selection.Interior.TintAndShade <> -0.249977111117893 And Selection.Interior.ColorIndex <> 4 Then
            With Selection.Interior
                .Pattern = xlNone
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
        End If
    End If
End Sub


Cdlt
1
touroul
 
Bonjour Frenchie

Merci beaucoup pour le code.
Appliqué à une petite sélection manuelle, ça fonctionne;
Mais en réalité je dois l'adapter en excluant 2 couleurs (bleu et jaune), et sur une zone nommée 'MaZone'

Voici mon code qui n'a aucun effet :

Sub FondCellules()
Range("MaZone").Select
If Selection.Interior.TintAndShade <> -0.249977111117893 Or Selection.Interior.TintAndShade <> 4 Then
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
End Sub


Puis-je te demander de regarder mon code ? Il doit y avoir un illogisme.

Merci par avance !
0

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

Posez votre question
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 
Bonjour Frenchie

Lève-tôt je vois !

Je dois partir au travail mais j'intègre ça ce soir.

La sélection d'une des cellules de "MaZone", déclenchera la macro, tout autre cellule en dehors de "MaZone" ne sera pas prise en compte? 

Pas tout à fait.
La macro est déclenchée à la main via un bouton, de façon ponctuelle.
Déclenchement uniquement sur 'MaZone' et, effectivement, pas en dehors.

Je file

Merci beaucoup pour votre aide !
0
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 
Bonjour Frenchie

J'ai du ajouter une boucle sur Each Cell in Range, mais un final c'est parfait, c'est bien ça que je voulais faire.

Je te remercie vivement pour ton aide et je marque en Résolu.

Bonne soirée et encore merci
0