Coloration onglet sur cellule MFC

Bonjour,

J'ai une macro pour qu'un onglet

se colore selon la couleur d'une cellule (cellule B1 du fichier joint). En revanche ma macro ne fonctionne pas si la couleur de la cellule provient d'une MFC sur ladite cellule.

Quelqu'un connait-il le code pour que cela fonctionne si la cellule est donc sans couleur mais mis en forme conditionnelle ?

Merci d'avance.

Bonjour,

Quel est le code que vous utilisez pour colorier l'onglet ?

Cordialement

J'ai mis ce code dans ThisWorkbook :

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  On Error Resume Next
  ActiveWorkbook.Sheets(Sh.Name).Tab.ColorIndex = Sheets(Sh.Name).[B1].Interior.ColorIndex
End Sub

Pourquoi dans Thisworkbook ?

Le code doit agir sur plusieurs feuilles ou seulement sur la feuille Coloration ?
je suppose que seule la feuille Coloration est concernée par ce choix dans la liste déroulante. Juste ?

Edit :
oups désolé je viens de voir votre code dans le fichier. Mes questions ci-dessus restent bien entendu.
S'il n'agit que sur la feuille Coloration, voici le code que vous pouvez mettre dans cette feuille et supprimer celui dans Thisworkbook

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Byte
If Not Intersect(Target, Range("B1")) Is Nothing Then
    Select Case UCase(Target)
        Case Is = "ROUGE": i = 3
        Case Is = "BLEU": i = 2
        Case Is = "VERT": i = 1
    End Select
    ActiveSheet.Tab.Color = Range("B1").FormatConditions(i).Interior.Color
End If
End Sub
Si vous avez plusieurs feuilles concernées, il faudra revoir le code

Bonjour,

Perso, je ne vois pas trop l'intérêt de rechercher la couleur de la MFC puisque cette dernière est fonction du texte (qui indique la couleur) saisi dans la cellule B1.

Il suffit de lire d'appliquer la couleur indiquée à chaque changement de valeur de la cellule B1.

Cdlt

Edit; Mille excuses DAN, réponse tardive de ma part, je n'avais pas rafraîchi l'écran.

Bonjour, à tous je pensais aussi à utiliser ce qui est écrit, plutôt que la couleur elle même.

Ce qui est embêtant c'est que vous avez utilisé :

- une liste de choix en cellule B1 + une MFC

Tant qu'à utliser un sélecteur autant utiliser une Combobox alors.

Merci pour vos retours.

Je dois effectivement mettre cette macro sur plusieurs feuilles et OUI je peut tout à fait prendre la valeur de la cellule plutôt que la couleur de la MFC.

Je regarde tout à l'heure et je vous fait un retour.

Je dois effectivement mettre cette macro sur plusieurs feuilles et OUI je peut tout à fait prendre la valeur de la cellule plutôt que la couleur de la MFC.

Vous avez une liste déroulante sur chacune des feuilles et quel est le nom des feuilles concernées ?

Il faudrait un peu plus de précision sur la structure de votre fichier

Je viens d'essayer les 3 solutions et elles fonctionnent toutes.

Comme le demande Dan, je joints un fichier qui ressemble à ce qu'il me faut au final. Il y a une seule feuille pour les listes.

Ce fichier m'est imposé par un client au niveau de sa disposition donc difficile de le mettre sous une autre forme pour en tirer des TCD par exemple (celui en pièce jointe est une simplification mais ça représente assez mon besoin).

Dans sa fonctionnalité j'ai essayé d'automatiser au maximum.

Le but de ce fichier est de reporter quotidiennement pour chaque mois de l'année des valeurs pour 3 sites. J'ai donc voulu créer une feuille que je duplique, et en changeant le mois et le site cela renomme la feuille. Le but est de pouvoir avoir un onglet BILAN pour faire une synthèse par mois pour les 3 sites. Dans l'idée je voudrai passer par la fonction indirect (dans le tableau bilan) mais je peine pour trouver des formules globales sans passer par des cellules intermédiaires.

Il y a peut-être plusieurs autre solutions mais je bloque sur ces points :

- Faire en sorte que la formule cherche les valeurs dans toutes les feuilles comportant le même mois que la feuille BILAN. J'ai reporté manuellement le nom des feuilles de K1 à K3 car j'ai bien une macro pour extraire le nom des feuilles mais elle n'est pas assez développée pour n'extraire que les feuilles comportant le mois identique à l'onglet BILAN.

- Si je tire ma formule INDIRECT, l'incrémentation ne se fait pas et j'ai toujours la même valeur.

- Dans ma formule actuelle INDIRECT si une des 3 feuilles n'existe pas alors j'ai une erreur au lieu d'avoir quand même la somme des feuilles existantes...

- Il doit y avoir un problème dans le tableur car je galère pour le fermer et en cliquant dans la cellule C8 par exemple, la formule disparait...

Si quelqu'un à une solution à adapter je suis preneur...

Merci d'avance.

Bonjour,

Essayez ceci en C8:

=SIERREUR(INDIRECT("'"&$K$1&"'!"&ADRESSE(LIGNE();COLONNE()));0)+
SIERREUR(INDIRECT("'"&$K$2&"'!"&ADRESSE(LIGNE();COLONNE()));0)+
SIERREUR(INDIRECT("'"&$K$3&"'!"&ADRESSE(LIGNE();COLONNE()));0)

Et supprimez la macro "Private Sub Workbook_SheetCalculate(ByVal Sh As Object)"

Cdlt

Bonjour à tous

La couleur obtenue par MFC ou pas est .DisplayFormat.Interior.Color

Bonjour,

Vu le nombre d'intervenants sur votre fil, je pense que vous avez assez de solutions.

Seul conseil, désactivez la macro Sheet Calculation qui fonctionne continuellement. Mettez cette instruction dans le code Change puisque cela dépend de la valeur attribuée à B1.

Cordialement

Bonjour Arturo83 et 78Chris,

Nickel pour la formule mais comment se fait t-il que la macro pour le renommage des feuilles perturbe le tableur alors que sur un autre je n'ai pas ce genre de souci ? Suis-je condamné à renommer les feuilles à la main ?

Pour ma liste de feuilles j'ai la macro ci dessous, mais comment ajouter le fait que cette liste doit extraire uniquement le nom des feuilles qui comportent le numéro du mois en B2 de la feuille BILAN ?

Sub Noms_feuilles()
Dim i As Integer

    Range("K1").Select

    For i = 1 To Sheets.Count
        ActiveCell.Value = Sheets(i).Name
        ActiveCell.Offset(1, 0).Select
    Next i

End Sub

Pour 78Chris je n'ai pas réussi à adapter .DisplayFormat.Interior.Color dans ma macro, rien ne se passe...

Merci pour votre aide.

re

Nickel pour la formule mais comment se fait t-il que la macro pour le renommage des feuilles perturbe le tableur alors que sur un autre je n'ai pas ce genre de souci ? Suis-je condamné à renommer les feuilles à la main ?

Je vous ai expliqué dans mon précédent message. Mettez le renommage dans la macro SheetChange. Seul chose il vous faudra prévoir un message si la feuille existe déjà sans quoi le code va vous renvoyer un bug.
Aussi autre chose, pourquoi laissez vous la MFC alors que vous colorez depuis le code ?

Cordialement

Oui, merci Dan. Pour la macro dans ShettChange c'est bon ça fonctionne (je n'avais pas vu votre message avant ma précédente réponse). Pour un code si feuille existante je ne connais pas les codes.

Pour la MFC effectivement je vais la supprimer.

RE

Pour 78Chris je n'ai pas réussi à adapter .DisplayFormat.Interior.Color dans ma macro, rien ne se passe...

Juste pour expliquer car je partage les remarques des participants

Par rapport à ton code initial

ActiveWorkbook.Sheets(Sh.Name).Tab.ColorIndex = Sheets(Sh.Name).[B1].DisplayFormat.Interior.ColorIndex

Merci à tous.

Rechercher des sujets similaires à "coloration onglet mfc"