Microsoft 365 colorer des onglets

fantasio

XLDnaute Nouveau
Bonjour à tous

Je souhaiterai que mes onglets se colorent en rouge si la valeur de la cellule A1 est supérieur à 0.

J'ai 22 onglets sur ma page
dans la mesure du possible je souhaiterai appliquer cette condition à l'ensemble de mon fichier


Merci d'avance pour votre aide
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Une proposition :
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'
    With Sh
        If Not Intersect(.Range("A1"), Target) Is Nothing Then
            If .Range("A1").Value > 0 Then
                .Tab.Color = RGB(255, 0, 0)
            Else
                .Tab.Color = xlAutomatic
            End If
        End If
    End With
    
End Sub

Attention, ça fonctionne pour tous les onglets du classeur.
 

vgendron

XLDnaute Barbatruc
il ne s'agit pas de formule.. mais de macro
à mettre
1) dans un module standard pour ma proposition
2) dans le module "Thisworkbook" pour celle de Toofatboy (sa proposition est meilleure et il vaut mieux la privilgier à la mienne)
 

TooFatBoy

XLDnaute Barbatruc
il ne s'agit pas de formule.. mais de macro
à mettre
1) dans un module standard pour ma proposition
2) dans le module "Thisworkbook" pour celle de Toofatboy (sa proposition est meilleure et il vaut mieux la privilgier à la mienne)
Merci, c'est gentil, mais si la proposition de #3 a l'avantage de "décolorier" l'onglet si A1 n'est pas >0 (mais on ne sait pas si c'est souhaité puisque non demandé dans la question...), elle a aussi le gros inconvénient de fonctionner pour tous les onglets du classeur même ceux pour lesquels on ne voudrait pas qu'elle s'applique...
 
Dernière édition:

fantasio

XLDnaute Nouveau
Bonjour
je suis désolé mais je n'y arrive pas
j'ai fait alt+F11
Dans l'onglet thisworkbook, j'ai recopié le texte ci dessous

j'ai enregistré
mais ca ne marche pas

J'ai raté quelque chose mais je ne sais pas quoi



Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'
With Sh
If Not Intersect(.Range("A1"), Target) Is Nothing Then
If .Range("A1").Value > 0 Then
.Tab.Color = RGB(255, 0, 0)
Else
.Tab.Color = xlAutomatic
End If
End If
End With

End Sub
 

Staple1600

XLDnaute Barbatruc
Bonjour sur le fil

Pour les Ifophobes, ;)
Toujours dans ThisWorkBook
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Sh.Tab.Color = IIf(Sh.[A1] > 0, vbRed, -4105)
End Sub

NB: Juste pour le fun et parce qu'il pleut.

EDITION:
Comme il pleut toujours, et qu'il existe aussi peut être des IIFophobes
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Sh.Tab.Color = Choose(Abs((Sh.[A1] > 0) - 1), -4105, vbRed)
End Sub
 
Dernière édition:

fantasio

XLDnaute Nouveau
Je suis désolé de vous embeter
y a une subtilité à ma demande qui fait que la formule que vous m'avez donné ne marche pas

Ma cellule A1 correspond à une addition de plusieurs de cellules

Effectivement si je tape un chiffre en A1 ma cellule devient rouge

Par contre si le résultat de ma formule est supérieur à zéro - ca ne marche pas 😢
 

Gégé-45550

XLDnaute Accro
Je suis désolé de vous embeter
y a une subtilité à ma demande qui fait que la formule que vous m'avez donné ne marche pas

Ma cellule A1 correspond à une addition de plusieurs de cellules

Effectivement si je tape un chiffre en A1 ma cellule devient rouge

Par contre si le résultat de ma formule est supérieur à zéro - ca ne marche pas 😢
Bonjour,
... et si tu postais ton fichier, ne serait-ce pas plus simple pour tout le monde ?
Bonne soirée :)
 

TooFatBoy

XLDnaute Barbatruc

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 124
Messages
2 116 471
Membres
112 753
dernier inscrit
PUARAI29