CELLULE EN COULEUR SI SELECTIONNEE

  • Initiateur de la discussion LUCIEN
  • Date de début
L

LUCIEN

Guest
Bonjour au Forum
Je me pose une question, comment mettre en couleur une cellule lorsque je la selectionne ? Avez-vous une réponse à apporter à ma question ? Merci .
LUCIEN
 

CBernardT

XLDnaute Barbatruc
Bonsoir Lucien,

Une macro à placer dans le module de feille :

Option Explicit
Dim N As Byte
Private Sub Worksheet_selectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = xlNone
If Not Intersect(Target, ActiveCell) Is Nothing Then
If N = 56 Then N = 3
ActiveCell.Interior.ColorIndex = N
N = N + 1
End If
End Sub

54 couleurs colorent à tour de rôle la cellule active.

CBernardT
 
L

LUCIEN

Guest
Bonsoir Bernard, le Forum
Je te remercie pour ta réponse. Je viens de l'essayer et la macro retire toute les couleurs dans la feuille. Celle-ci est blanche. Ce que je souhaite, c'est colorer une cellule lorsque je la sélectionne et qu'elle retrouve sa couleur d'origine lorsque j'en selectionne une autre. Si tu as une idée ? Merci.
LUCIEN
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Lucien, Bernard de Toulouse (boudu), bonsoir le forum,

Ce que je souhaite, c'est colorer une cellule lorsque je la sélectionne et qu'elle retrouve sa couleur d'origine lorsque j'en selectionne une autre. Si tu as une idée ? Merci.
Je ne comprends pas car c'est exactement ce que fait la macro de Bernard. Peut-être as-tu voulu dire :
Ce que je souhaite, c'est colorer une cellule lorsque je la sélectionne et qu'elle garde sa nouvelle couleur lorsque j'en selectionne une autre. Si tu as une idée ? Merci.
Dans ce cas en reprenant le code de Bernard :
Option Explicit
Private Sub Worksheet_selectionChange(ByVal Target As Range)
ActiveCell.Interior.ColorIndex = 3 'couleur à adapter, ici rouge
End Sub
 

CBernardT

XLDnaute Barbatruc
Re Lucien et bonsoir Robert,

Je crois avoir compris maintenant ???

Une macro de notre Thierry national avec une modif pour pouvoir contrôler la procédure.
La macro fonctionne quand la cellule A1 est vide et est bloquée quand la cellule A1 contient quelque chose. Ceci afin de permettre de colorer d'autres cellules. Cette cellule n'est qu'un exemple !

Dim AdressePrecedent As String
Dim CouleurPrecedent As Byte
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'Contrôle de la possibilité à mettre en couleur une cellule
If Range('A1') = '' Then
'Chargement des variables adresse de la cellule et sa couleur
On Error GoTo Sortie
If CouleurPrecedent = Null Or AdressePrecedent = '' Then
With ActiveCell
AdressePrecedent = .Address
CouleurPrecedent = .Interior.ColorIndex
End With
End If
'Mise en couleur de la cellule précédente
Range(AdressePrecedent).Interior.ColorIndex = CouleurPrecedent
'Chargement des variables adresse de la cellule et sa couleur
With Range(Target.Address).Interior
CouleurPrecedent = .ColorIndex
.ColorIndex = 36
End With
AdressePrecedent = Target.Address
Sortie:
End If
End Sub

Cordialement

CBernardT
 

Bricofire

XLDnaute Impliqué
Bonsoir le fil,

Je crois que son idée est qu'il veut que sa cellulle active prenne une couleur particulière quand elle est active et qu'elle revienne à son état initial quand c'est le tour d'une autre, le pb étant que la cellule active pouvait avoir une autre couleur que neutre avant et que d'autres cellules dans la feuille peuvent elles-même avoir une couleur donnée, du coup si on remet tout à zéro, c'est gênant :)

Je pense à un truc avec en premier lieu un private sub worksheet activate pour détecter l'adresse de la cellulle active et sa couleur au départ, puis ensuite passer à un Wkst selection change pour affecter une couleur à la nouvelle en rendant la sienne à l'ancienne et en affectant la variable de l'adresse de base à cette dernière cellule pour repéter le phénomène à chaque évènement change, mais je ne suis pas Lord Nelson et pour mettre en forme tout ça, je vais rater les oeufs dans le jardin, donc si un superman du code pense que ça se tient.... :)

bonne nuit
 

Bricofire

XLDnaute Impliqué
Oups ! CBernardt Collision !!! :unsure:

Je ne sais pas si on a dit la même chose, ce qui est sû, c'est que même le temps de rédiger un post, ça va trop vite ! :)

bon je regarde ta soluce, comme quoi en deux lignes, on peut poser (poster ?) une quetion piège !! :)

Bonne nuit à tous,
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir le Fil, Bricofire, le forum,

Oui, je crois que Bricofire a vu juste mais ce serait bien si Lucien se manifestait à nouveau pour confirmer. Bien vu Bricofire je n'avais pas du tout pensé à ça... et je ne comprenais pas la remarque de Lucien. Comme quoi, comme disait Coluche, quand on n'en sait pas plus que ça, on devrait fermer sa gueule...
 
L

LUCIEN

Guest
Bonjour Bernard, Robert, Bricofire, le Forum
Je vous remercie pour votre aide.
Je pense avoir mal exposé ce que je souhaitais voir se réaliser dans ma feuille et c'est exactement ce que Bricofire expose. Une telle macro est-elle faisable ?
Merci d'avance pour votre secours et bon dimanche de Pâques.
LUCIEN
 

michel_m

XLDnaute Accro
Bonjour Lucien, Robert, Bernard, bricofire

Ci joint proposition exploitant le 'hidden space names', curiosité trouvée sur le site du grand Sachem Laurent Longre

Bon Dimanche à tous

Michel [file name=colorie_en_jaune.zip size=9634]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/colorie_en_jaune.zip[/file]
 
Dernière édition:

Dan

XLDnaute Barbatruc
Bonsoir,

Une soluce supplémentaire par macro à placer en VBA dans la feuille concernée :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Rows('1:100').Interior.ColorIndex = -4142 'définition de la plage concernée - Couleur blanche par défaut
ActiveCell(1, 1).Interior.ColorIndex = 6 'applique couleur en jaune
Application.ScreenUpdating = True
End Sub

Bon dimanche



:)
 

Dan

XLDnaute Barbatruc
Bonsoir,

Une soluce supplémentaire par macro à placer en VBA dans la feuille concernée :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Rows('1:100').Interior.ColorIndex = -4142 'définition de la plage concernée - Couleur blanche par défaut
ActiveCell(1, 1).Interior.ColorIndex = 6 'applique couleur en jaune
Application.ScreenUpdating = True
End Sub

Bon dimanche



:)
 

Bricofire

XLDnaute Impliqué
Bonsoir à tous,

Whaouh ! merci Michel, ton qualificatif pour Mr Longre n'est pas exagéré (il faut dire que...) et l'aplli fait exactement ce que demandait Lucien et en beauté... :woohoo:

Sinon Dan , ta soluce qui a l'avantage d'être compacte a chez moi le même désagrément que d'autres posts précédents dans ce fil à savoir elle blanchit tout ! (macro
? ;)

Enfin c'est toujours un sujet de résolu :)

Bonne nuit à tous,
 
L

LUCIEN

Guest
Bonjour Robert, Bernard, Michel, Bricofire, Dan, Camiche, le Forum,

Je vous remercie tous de m'avoir aidé si rapidement. Je dois reconnaître que ce Forum est extraodinaire :) J'ai donc testé la macro proposé par Michel, celle de Laurent Longre, et elle répond à ce que j'attendais. Grand merci.
Je vous souhaite un bon lundi de Pâque.
Cordialement.

LUCIEN
 

Discussions similaires

Réponses
28
Affichages
1 K

Statistiques des forums

Discussions
312 980
Messages
2 094 128
Membres
105 941
dernier inscrit
antho_qh