XL 2010 changement de la couleur d'un onglet (jaune), si une des cellules d'un tableau n'est plus vide sinon l'onglet garde sa couleur d'origine

  • Initiateur de la discussion Initiateur de la discussion sebbbbb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sebbbbb

XLDnaute Impliqué
Bonjour a tous

voilà bien longtemps que je ne suis pas venu ici 🙂

je fais appel a mes amis experts excel pour resoudre cette enigme...

Comment réaliser un changement automatique de la couleur d'un onglet ( qui devient jaune), si une des cellules d'un tableau (a10:f25) n'est plus vide svp ?

si aucune cellule d'un tableau n'est remplie, alors la couleur de l'onglet est la couleur par défaut

un grand merci par avance a vous tous

cdlt
seb
 
Bonjour,
Ces cellules (A10:F25) sont-elles le résultat d'une formule, ou remplies à la main?
Si elles sont remplies à la main, on peut colorer l'onglet lorsqu'on le quitte (pas beaucoup d'autre intérêt...)
Dans le ThisWorkbook :

VB:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Sheets(Sh.Name).Tab.ColorIndex = IIf(Application.CountA(Sheets(Sh.Name).Range("A10:F25")) < 96, 6, xlColorIndexNone)
End Sub

Si elles sont le résultat d'une formule, il va falloir coder un peu différemment
 
Merci pour la réponse
ces cellules sont remplies a la main
je voudrais que celà soit automatisé. si une cellule est modifiée alors la couleur de l'onglet change. Gain en visibilité pour les utilisateurs suivants
j'ai oublié de préciser que le classeur est protéger. j'imagine il faut donc que la macro deprotege le classeur, change la couleur, et reprotege le classeur
merci par avance
 
Re-,
Comme je l'ai chuchoté, l'intérêt est moindre, car la modification de la couleur de l'onglet n'est pas perceptible...(ou très peu)
Donc, c'est soit un contrôle à postériori (lorsqu'on quitte l'onglet, le fichier, qu'on l'enregistre...), mais pas certain du "Gain en visibilité"
Et quel est le type de protection du fichier? (à l'ouverture, protection des onglets uniquement...)?
Ou autre visuel bien plus impactant, une MEFC qui met en rouge si la cellule est vide...
 
je ne comprends pas ta demande.
le classeur est protege par MDP donc j'imagine qu il faut insérer dans le code le MDP pour déprotéger le classeur, afin d'autoriser le changement de couleur de l'onglet "Deliveries"
merci
 
Re-,
Il est protégé pour l'ouverture uniquement?
Donc, une fois qu'il est ouvert, on peut modifier la couleur des onglets sans mdp, non? (à la main)
Ou il faut également un mdp pour modifier cette couleur?
Et as-tu fait un essai en modifiant la couleur de l'onglet, lorsque celui-ci est actif?
Regarde le tout petit fichier joint, et clique sur la modification de couleur de l'onglet
Il faut vraiment le regarder, pour s'apercevoir du changement...
 

Pièces jointes

merci pour le fichier
celui ce ne repond pas vraiment à ma question
je recapitule. pour le boulot j'utilise un gros fichier excel avec macro utilisable par l'ensemble du service
pour eviter les conneries, le classeur est protégé par MDP

je souhaiterais que pour l'un des onglets de ce classeur (onglet appelé "Deliveries"), lorsqu'une cellule du tableau (a10:f25) est remplie, alors l'onglet devienne immédiatement jaune, si aucune cellule n'est remplie (et donc toute vides) alors l'onglet reste ou revienne à la couleur d'origine.

j'ai trouvé une fonction qui marche seulement sur cellule (a10) sauf quand le classeur est est protégé

est il possible de modifier cette fonction pour qu'elle :
- deprotege le classeur automatiquement
- change la couleur de l'onglet (se necessaire)
- reprotege le classeur

ci-dessous ma fonction

Function CouleurdesOnglets(ByVal Coul%)
'Couleur vide (aucune) par défaut
If Coul < 0 Then Coul = -4142
Application.Caller.Worksheet.Tab.ColorIndex = Coul
End Function

elle est liée a la cellule A3 de l'onglet "deliveries" qui comporte cette formule :
=CouleurdesOnglets(SI(A10="";-4142;6))

merci par avance pour votre aide
seb
 
non quand il est ouvert le classeur est toujours protegé et la fonction ne 'fonctionne' pas.
par contre si je laisse le classeur non protegé alors elle fonctionne.
Mais je souhaite que le classeur soit tout le temps protegé pour eviter toute fausse manip de mes collegues
 
Dernière édition:
Bonjour le fil, le forum

@sebbbbb , je remet les références à l'auteur dans la discussion !

VB:
Function CouleurOnglet(ByVal Coul%)
'Changer la couleur d'onglet par une formule personnalisée
'by Ti_ (Thierry Pourtier) le 21-10-2006
If Coul < 0 Then Coul = -4142
Application.Caller.Worksheet.Tab.ColorIndex = Coul
CouleurOnglet = ""
End Function

voila la fonction modifiée, changez toto par le mot de passe utilisé, je n'ai plus excel 2010 pour tester si cela fonctionne.
Cela semble correctement fonctionner sur 365.

Code:
Function CouleurOnglet(ByVal Coul%)
'Changer la couleur d'onglet par une formule personnalisée
'by Ti_ (Thierry Pourtier) le 21-10-2006
ThisWorkbook.Unprotect Password:="Toto"
If Coul < 0 Then Coul = -4142
Application.Caller.Worksheet.Tab.ColorIndex = Coul
CouleurOnglet = ""
ThisWorkbook.Protect Password:="Toto"
End Function
 
Dernière édition:
Bonjour sebbbbb, Cousinhub, Oneida, Bernard,

Je ne comprends rien à vos échanges, il est bien dit :
Comment réaliser un changement automatique de la couleur d'un onglet ( qui devient jaune), si une des cellules d'un tableau (a10:f25) n'est plus vide svp ?
Donc ce code dans la feuille me paraît évident :
VB:
Private Sub WorkSheet_Change(ByVal Target As Range)
ThisWorkbook.Unprotect "toto" 'mdp à adapter
Me.Tab.ColorIndex = IIf(Application.CountA([A10:F25]), 6, xlNone)
ThisWorkbook.Protect "toto"
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour