Macro : griser une cellule au clic gauche

  • Initiateur de la discussion Initiateur de la discussion newmacroman
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

newmacroman

Guest
Bonjour à tous,

Je suis débutant en macro et j'aurais besoin d'un conseil.
J'aimerais créer une macro qui grise une cellule quand je clique gauche dessus et idéalement qui se "dégrise" au clic droit.
En fait, je ne souhaite pas insérer de case à cocher...

Cela vous semble-t-il possible ?
Et si oui, avez-vous des conseils ?

Merci de votre aide.
 
Re : Macro : griser une cellule au clic gauche

Salut newmacroman,

Je te suggère d'utiliser deux événements de l'objet worksheet :
* SelectionChange pour le clic gauche (inconvénient : si tu veux regriser une cellule que tu viens de blanchir, ça ne marche pas)
* BeforeRightClick pour le clic droit

Voici un exemple de code :

Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    With Target.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Cancel = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With Target.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -0.499984740745262
        .PatternTintAndShade = 0
    End With
End Sub

Gurgeh
 
Re : Macro : griser une cellule au clic gauche

Bonjour Newmacroman et bienvenu, bonjour Gurgeh, bonjour le forum,

Avec un seul événement, le clic du bouton droit (BeforeRightClick). Clic du bouton droit une fois pour griser, clic de bouton droit sur des cellules grisées pour enlever la couleur :
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim cel As Range 'déclare la variable cel (CELlule)


Cancel = True 'empêche le menu contextuel lié au clic du bouton droit
For Each cel In Selection 'boucle sur toutes les cellules cel de la sélection
    cel.Interior.ColorIndex = IIf(cel.Interior.ColorIndex = 15, xlNone, 15) 'définit la couleur de la cellule (grise si aucune couleur, aucune couleur si grise)
Next cel 'prochaine cellule de la boucle
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
586
Retour