Lier la Couleur de 2 cellules ??

RoBBoB

XLDnaute Nouveau
Bonjour à tous,

Je suis entrain de créer un Fichier excel constitué d’une 10 aine d’onglets.

Je souhaite mettre un Onglet Général de Synthèse qui va prendre en compte les couleurs de certaines cellules qui sont dans les autres onglets….donc je cherche comment « lier » le format couleur de 2 cellules….Et c’est la galère… !!

Il y a bien de nombreuses réponses basé sur le principe des Format Conditionnel, mais cela repose sur des informations chiffrés… Ce que en l’occurrence je n’ai pas.

Dans le fichier ci-joint, j’ai 3 onglets :
- Tableau Central
- Données 1
- Données 2

Et donc je souhaite que la couleur de la cellule H10 de l’onglet Tableau central soit égale à la couleur de la Cellule D8 de l’onglet Données 1 (soit Jaune)
et que,
la couleur de la cellule I10 de l’onglet Tableau central soit égale à la couleur de la Cellule D8 de l’onglet Données 2 (soit Rouge)

Naturellement tout changement de couleur opéré dans les Onglet Données 1 et Données 2 devra avoir lieu également automatiquement dans H10 et I10 de l’onglet Tableau Central…

J’ai beaucoup cherché sur le net, vraiment…mais rien trouvé …le seul truc qui s’en rapproche c’est ce post…mais je ne comprends pas bien les explications ni comment cette commande Macro pourrait être modifié pour fonctionner dans mon fichier Test…

https://www.excel-downloads.com/threads/lier-la-mise-en-forme-entre-2-cellules.41756/

Merci à tous pour votre aide et bonne journée !:)
 

Pièces jointes

  • Test Format Couleur.xls
    37.5 KB · Affichages: 52

Paf

XLDnaute Barbatruc
Re : Lier la Couleur de 2 cellules ??

Bonjour

Récapituler la couleur des cellules des différentes feuilles dans la feuille Tableau central, ne pose pas de soucis, par exemple:
Code:
Sub CentralCouleur()
 For i = 2 To Worksheets.Count
    For j = 10 To 24
        Worksheets("Tableau Central").Cells(j, i + 6).Interior.ColorIndex = Worksheets(i).Cells(j - 2, 4).Interior.ColorIndex
    Next j
 Next i
End Sub
(dans la mesure où ces couleurs ne sont pas issues de MFC).

Par contre c'est la mise à jour en temps réel qui est délicate puisque le changement de couleur d'une cellule, que ce soit par MFC ou manuellement ou par macro, ne déclenche aucun événement détectable.

D'où la question : Qu'est qui fait changer la couleur de votre cellule dans les feuilles ?


A+
 

ROGER2327

XLDnaute Barbatruc
Re : Lier la Couleur de 2 cellules ??

Bonjour RoBBoB, Paf.


Un autre essai.
Relève uniquement la couleur de fond intrinsèque, ignore le coloriage conditionnel.​


Bonne soirée.


ℝOGER2327
#8033


Samedi 21 Phalle 142 (Saint Erbrand, polytechnicien - fête Suprême Tierce)
14 Fructidor An CCXXIII, 6,8663h - noix
2015-W36-1T16:28:45Z
 

Pièces jointes

  • Copie de Test Format Couleur.xlsm
    21.2 KB · Affichages: 56

Paf

XLDnaute Barbatruc
Re : Lier la Couleur de 2 cellules ??

Re et bonjour ROGER2327,

Bah oui !

En mettant le code dans Private Sub Worksheet_Activate()
de la feuille Tableau central, quelque soit l'origine de la modification de couleur (hors MFC), l'affichage de la feuille Tableau central sera à jour!
Code:
Private Sub Worksheet_Activate()
 For i = 2 To Worksheets.Count
    For j = 10 To 24
        Worksheets("Tableau Central").Cells(j, i + 6).Interior.ColorIndex = Worksheets(i).Cells(j - 2, 4).Interior.ColorIndex
    Next j
 Next i
End Sub

A+

Edit : correction code ( qui fonctionnait)
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Lier la Couleur de 2 cellules ??

Suite...


...si on préfère prendre en compte une éventuelle mise en forme conditionnelle.


ℝOGER2327
#8034


Samedi 21 Phalle 142 (Saint Erbrand, polytechnicien - fête Suprême Tierce)
14 Fructidor An CCXXIII, 7,0928h - noix
2015-W36-1T17:01:21Z


P.s. : le code de la pièce jointe ne fonctionne qu'à partir d'Excel2010.
 

Pièces jointes

  • Copie de Test Format Couleur-2.xlsm
    21.3 KB · Affichages: 55
Dernière édition:

RoBBoB

XLDnaute Nouveau
Re : Lier la Couleur de 2 cellules ??

Glurbsss, Merci à vous Paf et ROGER2327 !!!

Pour répondre à Paf sur sa 1ère question :"Qu'est qui fait changer la couleur de votre cellule dans les feuilles" => c'est mon action, c'est à dire que c'est moi qui vais dans les onglets des Données et qui ensuite décide de changer ou non la couleur de la cellule en question. Donc si il faut appuyer sur un bouton sur le ficier central pour mettre a jour les couleurs que j'aurai éventuellement changé dans les onglets de Données, je n'ai pas de problème avec ça...

Mais quand tu dis de mettre le code dans :"Private Sub Worksheet_Activate()"...tu veux dire quoi ?? je ne comprend pas vraiment le langage VBA en fait .... et quelle différence y a -t-il entre ton 1er codage et le second proposé ???



Sinon ROGER2327 dans ton fichier ou tu parles de la Mise en forme Conditionnelle, lorsque je change la couleur d'une cellule de l'Onglet Données, et que je repasse sur l'onglet Tableau Central j'ai un message d'Erreur du style : "Run Time Error 438 Object doessn't support this property or method"


Merci encore à tous les 2 de votre précieuse aide !!!
 

ROGER2327

XLDnaute Barbatruc
Re : Lier la Couleur de 2 cellules ??

Re...


(...)
Sinon ROGER2327 dans ton fichier où tu parles de la Mise en forme Conditionnelle, lorsque je change la couleur d'une cellule de l'Onglet Données, et que je repasse sur l'onglet Tableau Central j'ai un message d'Erreur du style : "Run Time Error 438 Object doessn't support this property or method"
(...)
Pas de solution : le code proposé dans la pièce jointe du message #5 ne fonctionne pas dans Excel2007 car la propriété DisplayFormat de l'objet Range a été introduite avec Excel2010. Je l'avais oublié et je n'aurais pas dû vous proposer cette solution.

Par contre, je serais intéressé de savoir si la proposition du message #3 fonctionne. Merci d'avance !​


Bonne journée.


ℝOGER2327
#8036


Dimanche 22 Phalle 142 (Sainte Dragonne, pyrophage - fête Suprême Seconde)
15 Fructidor An CCXXIII, 3,4699h - truite
2015-W36-2T08:19:40Z
 

Paf

XLDnaute Barbatruc
Re : Lier la Couleur de 2 cellules ??

Re,

le code proposé, comme celui de ROGER2327, va récupérer les différentes couleurs pour mettre à jour la feuille Tableau Central dès qu'on l'active. La manière dont les cellules sont mises 'en couleur' importe donc peu ( sauf si MFC ).

Pour atteindre la partie 'Visual Basic' de la feuille , faire un clic droit sur l'onglet de la feuille Tableau Central et choisir "visualiser le code". On arrive dans l'éditeur Visual Basic et dans la fenêtre de code qui correspond à la feuille Tableau Central. Y copier le code du post #4

Quant au message d'erreur, j'ai le même sur ma version 2003 d'Excel. a priori c'est dû à l'emploi d'une nouveauté Excel 2010.
ROGER2327 confirmera sans doute ?

A+
 

ROGER2327

XLDnaute Barbatruc
Re : Lier la Couleur de 2 cellules ??

Re...


(...)
Quant au message d'erreur, j'ai le même sur ma version 2003 d'Excel. a priori c'est dû à l'emploi d'une nouveauté Excel 2010.
ROGER2327 confirmera sans doute ?
(...)
C'est fait dans le message #7.​


Bonne journée.


ℝOGER2327
#8037


Dimanche 22 Phalle 142 (Sainte Dragonne, pyrophage - fête Suprême Seconde)
15 Fructidor An CCXXIII, 4,3893h - truite
2015-W36-2T10:32:03Z
 

RoBBoB

XLDnaute Nouveau
Re : Lier la Couleur de 2 cellules ??

Merci Paf er ROGER2327 !!!


La solution de Paf semble bien fonctionner j’ai juste qq petites surprises comme le fait de mettre une certaine couleur dans une case et d’en trouver une autre dans le tableau central, mais c’est sans doute lié au fait que j’utilisais des couleurs autres que les couleurs primaires, donc c’est pas grave …


Par contre j’ai essayé de comprendre le codage pour le mettre en pratique dans le fichier principal sur lequel je travaille et j’ai qq soucis pour adapter ce codage …


Du coup j’ai mis une version du fichier sur lequel je travaille pour que vous puissiez m’aiguiller vers la solution….


Dans ce fichier, les onglets C-Ve, C-Ma, C-Rd, P-Or, P-Fa, P-Pcd, R-Rh, R-Fi, R-Sg sont les endroits ou je mets les couleurs à l’origine dans les cases de la ligne 4 (ou se trouve les lettres). J’ai mis des lettres identiques mais les couleurs elles seront éventuellement différentes…

Et je dois donc synthétiser les données de ces Onglets d’abord dans les Onglets : COM. / PRO. /RES

- Dans l’onglet COM. j’ai la synthèse des éléments de C-Ve, C-Ma, C-Rd
- Dans l’onglet PRO. j’ai la synthèse des éléments de P-Or, P-Fa, P-Pcd
- Dans l’onglet RES. j’ai la synthèse des éléments de R-Rh, R-Fi, R-Sg


Et enfin dans l’onglet GENERAL j’ai la synthèse de tous les éléments, soit issus des onglets C-Ve, C-Ma, C-Rd, P-Or, P-Fa, P-Pcd, R-Rh, R-Fi, R-Sg, soit issu des onglets COM., PRO., RES.


L’idéal étant de récupérer et la couleur et le mot (ici des lettres) se trouvant dans chaque case…


Merci encore pour votre sacré coup de main !
 

Pièces jointes

  • PA-TEST-01SEP15.xlsx
    75.9 KB · Affichages: 51

Paf

XLDnaute Barbatruc
Re : Lier la Couleur de 2 cellules ??

Re tous,

@ ROGER2327, désolé, je n'avais pas pris le rafraîchissement.

@ RoBBoB, ce n'est plus tout à fait la même chose!

Dans la feuille de code de la feuille GENERAL
Code:
Private Sub Worksheet_Activate()
 Dim NomFeuille, Nom, i As Integer, DerCol As Byte, DebCol As Byte
 DebCol = 2
 For Each Nom In Range(Cells(2, 2), Cells(2, Cells(2, Columns.Count).End(xlToLeft).Column))
    If Nom.Value <> "" Then
        NomFeuille = Nom & "."
        With Worksheets(NomFeuille)
            DerCol = .Cells(6, Columns.Count).End(xlToLeft).Column
            .Range(.Cells(8, 3), .Cells(17, DerCol)).Copy Worksheets("GENERAL").Cells(9, DebCol)
            DebCol = DebCol + DerCol - 2
        End With
    End If
 Next
End Sub

Dans chaque feuille de code des feuilles PRO., COM. et RES.
Code:
Private Sub Worksheet_Activate()
 Dim Nom1,Nom2,x
 x = 2
 For Each Nom1 In Range(Cells(5, 3), Cells(5, Cells(5, Columns.Count).End(xlToLeft).Column))
        If Nom1.Value <> "" Then
            With Worksheets(CStr(Nom1))
            For Each Nom2 In .Range(.Cells(2, 4), .Cells(2, .Cells(2, .Columns.Count).End(xlToLeft).Column))
                If Nom2.Value <> "" Then
                    x = x + 1
                    .Range(.Cells(4, Nom2.Column), .Cells(4, Nom2.Column + 7)).Copy
                    Cells(8, x).PasteSpecial Paste:=xlPasteAll, Transpose:=True
                End If
            Next
            End With
        End If
 Next
End Sub

NB: dans la feuille RES.,la ligne 6 doit être renseignée (valeurs RRHR, RRHA, RRHRP ....)


A tester

A+
 

RoBBoB

XLDnaute Nouveau
Re : Lier la Couleur de 2 cellules ??

Bonjour Paf,

Désolé pour cette réponse tardive. J'ai suivi tes recommandations et à priori ça à l'air de super bien marcher !!! Bref je te remercie vraiment beaucoup beaucoup de ton efficacité et de ta gentillesse de t'être penché sur mon problème !!!

Merci encore et encore !!!

Je te souhaite une très très bonne journée !!
 

RoBBoB

XLDnaute Nouveau
Re : Lier la Couleur de 2 cellules ??

Re-Bonjour Paf,


Glurbss je crois que j’ai parlé trop vite en fait ….puisqu’en fait la programmation VBA prend en compte le 1er changement de couleur mais pas celui du texte ….damneddd….

……dans les onglets C-Ve, si je remplace les lettres des cases du haut par un nom, le changement du nom n’a pas lieu dans le 1er onglet Général « COM » ni dans l’onglet GENERAL ….

Plus exactement le changement de la lettre A de la 1ère case de C-Ve a fonctionné une fois mais plus après et dans les autres cases cela n’a pas fonctionné du tout …aie aieee....


Et pour les couleurs je suis également confronté à une autre particularité si j’enlève une couleur, la couleur que j’ai mis la 1ère fois n’est pas remise à jour et donc n’est pas modifiée ….aie aie …

Des idées sur l'origine de ces 2 beug ???
 

Discussions similaires

Réponses
46
Affichages
843

Statistiques des forums

Discussions
312 177
Messages
2 085 971
Membres
103 073
dernier inscrit
MSCHOE16