XL 2016 Modification couleur onglet sur variable

troopers87

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à modifier la couleur de l'ensemble des onglets de mon classeur (une cinquantaine) selon la valeur d'une cellule nommée qui se situe dans chacune des feuilles. Je m'explique :
- chaque feuille contient une cellule nommée ETAT_projetx (avec x = le numéro du projet),
- chaque onglet a une position qui est égal à x + 3.

Par exemple : la feuille qui contient ETAT_projet5 est la feuille Sheets(8).

Voici où j'en suis dans mon code. Là où je pèche, c'est dans l'intégration de la fameuse variable "x" dans le nom de la cellule et dans numéro de la Sheets. J'espère être clair ! :p

VB:
'Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

'Appliquer une couleur jaune à l'onglet de la feuille
If Range("ETAT_projet1").Value = "Terminé" Then
    ActiveSheet.Tab.ColorIndex = 4
ElseIf Range("ETAT_projet3").Value = "En retard" Then
    Sheets(3).Tab.ColorIndex = 3
End If

'1 = noir
'2 = blanc
'3 = rouge
'4 = vert
'5 = bleu
'6 =  jaune
'7 = rose
'8 = cyan
'9 = bordeau
'10 = vert sombre

'End Sub
 

cp4

XLDnaute Barbatruc
Bonjour,

Tu me dis qu'il peut y avoir plusieurs plages nommées au sein d'une même feuille.
Quel est le rapport entre ces plages et la modification de la couleur de l'onglet de la feuille concernée (mise à part les 2 cellules nommées).
De plus tu n'as même pas mis quelques plages nommées sur tes feuilles pour illustrer tes cas.
Ne crois pas que je ne veuille pas t'aider. En cette période mon état de santé est un peu fébrile, donc pas très entrain.
Cependant, je voudrais bien comprendre ton problème.

Bonne journée.
 

troopers87

XLDnaute Occasionnel
Aucun souci, je le comprends tout à fait. Merci malgré tout de répondre !

Dans l'exemple que je t'ai envoyé, pour chaque feuille, j'ai nommé 2 plages : NOM_projetx et ETAT_projetx. Les vois-tu ?
Sache pour information qu'il peut y avoir beaucoup plus de plages nommées dans le fichier définitif.
Note : je me rends compte que nous ne nous comprenons peut-être pas car pour moi, le mot "plage" signifie un ensemble de cellule OU une cellule seule, ce qui est le cas ici.

La plage nommée ETAT_projetx est la seule qui doit impacter la couleur de l'onglet (les autres sont nommées pour d'autres raisons fonctionnelles qui n'ont pas de lien VBA).

J'espère t'éclairer :)
 

cp4

XLDnaute Barbatruc
Aucun souci, je le comprends tout à fait. Merci malgré tout de répondre !

Dans l'exemple que je t'ai envoyé, pour chaque feuille, j'ai nommé 2 plages : NOM_projetx et ETAT_projetx. Les vois-tu ?
Sache pour information qu'il peut y avoir beaucoup plus de plages nommées dans le fichier définitif.
Note : je me rends compte que nous ne nous comprenons peut-être pas car pour moi, le mot "plage" signifie un ensemble de cellule OU une cellule seule, ce qui est le cas ici.

La plage nommée ETAT_projetx est la seule qui doit impacter la couleur de l'onglet (les autres sont nommées pour d'autres raisons fonctionnelles qui n'ont pas de lien VBA).

J'espère t'éclairer :)
Est-ce que dans tes fameuses plages nommées, il y a plusieurs qui renferment les mêmes validations soient, "Terminé, En cours, En retard".

Avec le fichier du post#12, j'ai déplacé la cellule de validation et le code a bien fonctionné.

Dernière mouture à tester. Je n'ai rajouté qu'une condition: Nom cellule (plage) similaire à *ETAT_projet*
 

Pièces jointes

  • Copie de Exemple1.xlsm
    23.7 KB · Affichages: 31

Discussions similaires

Réponses
6
Affichages
1 K
Réponses
1
Affichages
1 K