Excel - Macro Colorer 1 cellule selon 1 autre

Résolu
_gfv Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
_gfv Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterai colorer une cellule (A) de la même couleur qu'une autre cellule (B) sachant que la couleur de la cellule B est variable.

J'ai trouvé le code pour colorer une cellule :

Sub testCouleur()

Selection.Interior.ColorIndex = 3

End Sub


Maintenant, j'aimerai que la couleur 3 soit une référence d'une autre cellule, soit en passant par le code couleur de la cellule obtenu via la fonction LIRE.CELLULE d'Excel, soit directement par la couleur de la cellule.

J'espère avoir été suffisamment clair et que vous allez pouvoir me retirer une grosse épine à mes deux pieds gauche :)

gfv


A voir également:

5 réponses

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Tu as pratiquement la réponse dans ta question, car comme tu as trouvé le code couleur, il suffit de le recopier :

Range("A1").Interior.ColorIndex = Range("B1").Interior.ColorIndex

Ta cellule A1 prend la couleur de B1 mais si B1 change de couleur il faut refaire ton code à nouveau.
0
_gfv Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour gbinforme,

je te remercie pour ta réponse, je vais tester ton code. J'ai trouvé, hier soir, celui-ci qui fonctionne plutôt bien :

Selection.Interior.ColorIndex = Sheets("feuil1").Cells(11, 6).Interior.ColorIndex

mais je pense que je peux faire plus simple en remplaçant Sheet("feuil1").Cell(11,6) par Range("F11)

Par contre, une autre question me viens :

- Est-il possible de coller sur un bouton un texte existant dans une cellule ? Ou alors d'appliquer une macro au textes d'un menu déroulant ?

Sinon je vais devoir apprendre à créer un menu...

Te remerciant par avance.


gfv
0
Utilisateur anonyme
 
Bonjour

Je peux te proposer cette macro à mettre dans la feuille contenant le bouton.
Il faut rentrer le texte en A1 ou tu changes la valeur de la cellule. Assures toi également que ton bouton est bien le Button 1. S'il n' y a qu'un seul bouton ça devrait être le cas sinon il faut connaître son indice.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("A1"), Target) Is Nothing Then Exit Sub
ActiveSheet.Shapes("Button 1").Select
Selection.Characters.Text = Range("A1")

Range("A1").Select
End Sub
0
_gfv Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Merci à toi AGi67.fr, car grâce à ton code, j'ai pu progresser dans ma quête VBA :)

Je me retrouve maintenant confronté à un autre problème.
Pour expliquer, j'ai crée un calendrier qui me grise automatiquement les samedi, dimanche et jours fériés. Sur ce calendrier, je fait un comptage de couleur via la fonction LIRE.CELLULE d'Excel ce qui me permet de savoir combien de cellule de la même couleur ont été "remplies" sur 1 mois. Ces couleurs sont prédéfinies et modifiables (d'où ma première question) et correspondent soit aux congés, aux RTT, à une absence maladie ou encore à des chantiers...

J'ai crée avec UserForm une fenêtre qui doit me permettre de colorer une cellule en une couleur (la cellule correspondant à un jour de la semaine et la couleur à une imputation, par exemple "congé"). Ceci implique au moins deux boutons : un pour colorier ma cellule et un autre qui doit mettre à jour le nom de celui qui me sert à colorier la cellule, ceci afin que l'on sache à quoi correspond le bouton (par exemple "Congé"). Cette manipulation me semble indispensable pour que n'importe qui puisse personnaliser les imputations d'heures.

Mon objectif est de savoir sur l'année (mis à part le suivi des heures) combien de temps une personne passe dans ces divers critères (congés, chantier, etc.).

Concernant la création de la fenêtre avec ce qui va bien dedans, je suis OK,
concernant la coloration de la cellule suivant la couleur d'une autre cellule, je suis OK,

- par contre concernant la modification du nom du bouton CommandButton1 (par exemple) je n'y arrive pas.
- Et autre soucis, lorsque ma fenêtre est active je ne peux plus sélectionner de cellule dans mon calendrier.


Je continue mes investigations dans ce dédale qui m'est encore inconnu et vous tiens au courant si je trouve une solution, mais votre aide ne me sera pas encore de trop :)


gfv
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
_gfv Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
...concernant la modification du bouton de commande, j'ai réussi à détourner le problème : j'ai créé une TextBox associée à ma cellule (nommée) que je voulais évolutive (donc à texte variable) puis j'ai balancé le code pour colorer la cellule sur un bouton placé à coté, et ça marche :)

Mais il me reste un problème auquel je me heurte :

- je n'arrive pas à sélectionner une cellule de l'agenda, ni faire de ScollUp ou ScrollDown lorsque ma fenêtre est active. Ceci m'impose donc de sélectionner mes cellules avant de lancer ma fenêtre de coloriage, ce qui est une contrainte.

je pense arriver au bout de ma "débrouillardise"...


gfv


Edit à 16:46 : ça y est j'ai trouvé, c'est une histoire d'affichage "modal", voici le code :

UserForm1.Show 0

je n'avais pas tapé le "0"... J'ai appris pleins de truc aujourd'hui et merci pour votre aide.

Je suppose qu'il doit y avoir plus simple et mieux que ce que j'obtiens, mais bon, pour un début, je suis heureux :D


gfv
0