Les Allergies
Alimentaires
Posez votre question Signaler

Excel - Macro Colorer 1 cellule selon 1 autre [Résolu]

_gfv 14Messages postés 10 janvier 2011Date d'inscription 24 mars 2011Dernière intervention - Dernière réponse le 11 janv. 2011 à 16:32
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
Lire la suite 

Excel - Macro Colorer 1 cellule selon 1 autre »

5 réponses
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
...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
Ajouter un commentaire
Ce document intitulé « Excel - Macro Colorer 1 cellule selon 1 autre » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?