Macro remplissage cellules avec mise en forme conditionnelle

Résolu
Raphdu Messages postés 46 Statut Membre -  
Zoul67 Messages postés 2001 Statut Membre -
Bonjour,

Je cherche une macro (ou autre solution) me permettant de remplir automatiquement toutes les cellules H1 de toutes les feuilles de mon classeur excel, sauf la première, avec la mise en forme conditionnelle suivante:

Si j'écris r dans la cellule: remplissage rouge
Si j'écris n dans la cellule: remplissage noir
Si j'écris v dans la cellule: remplissage vert
Si j'écris rien: pas de remplissage

Qqn a une solution?

Merci par avance.
A voir également:

4 réponses

Zoul67 Messages postés 2001 Statut Membre 149
 
Bonjour,

S'il s'agit toujours de ton classeur avec 200 onglets, mieux vaut peut-être colorier les onglets :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
With ActiveSheet
If .Cells(1, 8).Value = "n" Then
.Tab.Color = 1
ElseIf .Cells(1, 8).Value = "r" Then
.Tab.Color = 255
ElseIf .Cells(1, 8).Value = "v" Then
.Tab.Color = 5287936
End If
End With
End Sub
Si c'est bien la cellule, il faut remplacer ".Tab.Color" par ".Cells(1,8).Interior.Color"
0
Raphdu Messages postés 46 Statut Membre 2
 
Oui il s'agit bien de celui ci.

Ce serait effectivement mieux que l'onglet soit colorié. Mais après, comment faire pour que dans la feuille récapitulative, la couleur de l'onglet soit indiquée dans le tableau en face de la référence?

D'autre part, je n'arrive pas à lancer la macro (j'ai toujours pas saisi comment ça marche les macros..). Je vais dans virtual basic, je clique sur this workbook, je colle la macro que tu m'as donné, puis une fenêtre s'ouvre et me demande le nom de la macro. Et là, qu'importe ce que je rentre, ça m'ouvre une nouvelle fenêtre Module1... Je suis perdue.
0
Zoul67 Messages postés 2001 Statut Membre 149
 
Ce serait effectivement mieux que l'onglet soit colorié. Mais après, comment faire pour que dans la feuille récapitulative, la couleur de l'onglet soit indiquée dans le tableau en face de la référence?
Chaque chose en son temps, terminons le premier problème...

D'autre part, je n'arrive pas à lancer la macro (j'ai toujours pas saisi comment ça marche les macros..). Je vais dans virtual basic, je clique sur this workbook, je colle la macro que tu m'as donné, puis une fenêtre s'ouvre et me demande le nom de la macro. Et là, qu'importe ce que je rentre, ça m'ouvre une nouvelle fenêtre Module1... Je suis perdue.

Le texte en gras est un mensonge ! En fait, il y a une omission de ta part, tu as dû appuyer sur le bouton "Play". Mais l'intérêt d'utiliser une macro avec un nom prédéfini est qu'elle s'exécute suivant la condition que porte son nom, donc tu ne la lances pas toi-même, sauf en modifiant les cellules H1. Ici
- Workbook --> dans tout le classeur
- SheetChange --> à chaque changement dans une feuille
Comme tu as copié le code, ça marche tout seul (normalement)
0
Raphdu Messages postés 46 Statut Membre 2
 
Ahhh ok, je vois. Oui j'avais omis de mentionner l'étape play...

Ok. Et donc comment faire pour que dans la feuille récapitulative, la couleur de l'onglet soit indiquée dans le tableau en face de la référence?
0
Zoul67 Messages postés 2001 Statut Membre 149
 
A quoi ressemble la feuille récapitulative ?
0
Raphdu Messages postés 46 Statut Membre 2
 
Un tableau avec dans la colonne A, le nom des onglets.
0
Zoul67 Messages postés 2001 Statut Membre 149
 
On pourrait le faire par macro, mais je pense que le mieux c'est de faire une mise en forme conditionnelle avec la formule INDIRECT (c'est bien toi qui utilises INDIRECT dans cet onglet ?)
0
Raphdu Messages postés 46 Statut Membre 2
 
Oui c'est bien ça. Qu'est ce que je met dans ma formule pour avoir la couleur des onglets dans les cellules en face des références?

Et aussi, quel est le code couleur pour blanc?
.Tab.Color = ?

Merci!
0
Zoul67 Messages postés 2001 Statut Membre 149
 
Blanc 0 je pense.
Mais dans le récapitulatif, utilise INDIRECT en renvoyant vers la case H1 de l'onglet qui va bien dans une MFC sur la formule (la formule est):
- INDIRECT(...)="n" --> mise en forme "noir"
- INDIRECT(...)="r" --> mise en forme "rouge"
- INDIRECT(...)="v" --> mise en forme "vert"
0