Couleur de cellule automatique sauf une couleur
Résolu
touroul
Messages postés
520
Date d'inscription
Statut
Membre
Dernière intervention
-
touroul Messages postés 520 Date d'inscription Statut Membre Dernière intervention -
touroul Messages postés 520 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 :
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 !
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
-
Bonjour,
Essayez ceciIf Selection.Interior.TintAndShade <> -0.249977111117893 Then
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
Cdlt -
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 -
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 -
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 ! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 ! -
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