Si couleur d'une cellule alors...

Résolu/Fermé
Arkyen - Modifié par Arkyen le 25/01/2014 à 19:50
 tessel75 - 25 janv. 2014 à 20:02
Bonjour,

Je suis débutant dans tout ce qui est le domaine "Excel"
J'aimerais mettre en place une macro, qui lorsque je sélectionne une cellule non colorée, qu'elle se colore en rouge, et lorsque je sélectionne une cellule colorée en rouge, qu'elle redevienne non colorée (Blanche).

J'ai plus ou moins un code fonctionnel, mais lorsque je clic sur une cellule blanche elle passe en rouge sans souci, mais pour la refaire passer en blanc je dois sélectionner une autre cellule et resélectionner la précedente, désolé si je ne suis pas assez clair..

Voici mon code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Interior.ColorIndex = 3 Then Target.Interior.ColorIndex = 0 Else Target.Interior.ColorIndex = 3
End Sub

Ce que je demande est-il possible ?

J'aimerais aussi associer une maccro à un bouton, et quand je clic dessus toutes les cellules deviennent blanches.

Merci d'avance pour vos réponses.

Cordialement

2 réponses

Bonsoir,
"Comment met-on en place une macro ?"
Comme tu es débutant, tu fais comme les autres débutants ou les bouchés dans mon genre, càd tu ouvres l'enregistreur de macros (Sur Excel2007 et + , Onglet Affichage + Macros + Enregistrer une macro) tu exécutes à la main les manoeuvres que tu veux faire effectuer à ta macro et à la fin tu fermes. Ensuite tu ouvres la macro en mode "Modifier" , et tu reprends toutes les lignes une à une pour corriger ce que l'enregistreur a enregistré en élaguant, en simplifiant et en complétant. A la longue tu comprendras comment tout ça se goupille et tu deviendras un kador de VBA-Excel.
Bonne suite
1
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
25 janv. 2014 à 19:56
Bonjour,

A la place de l'évènement Sélection, utilises l'évènement Double Clic.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target.Interior.ColorIndex = 3 Then
Target.Interior.ColorIndex = xlNone
Else
Target.Interior.ColorIndex = 3
End If
End Sub

A+
0