Changer la couleur d'une cellule
Bonjour
Après avoir testé les solutions proposées sur des forums dont le votre, je n'ai pas réussi a résoudre le problème que je vous soumets.
Je souhaite mettre une couleur de fond sur une cellule quelconque par un simple clic.
Pour ce faire, j'ai crée une macro qui fonctionne lorsque je me positionne et que j'utilise le raccourci qui lui est affecté.
Inspiré par des solutions d'internautes, j'ai créé une deuxième macro qui fait appel à la première mais il n'y a aucun résultat !
Novice en Visual Basic, je pense que c'est un problème de syntaxe même si je n'ai pas de message d'erreur.
Le code qui permet de changer par Ctrl+n est le suivant :
Sub CaseVerte()
'
' CaseVerte Macro
' La case devient verte au clic
'
' Touche de raccourci du clavier: Ctrl+n
'
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
Pensant pouvoir déclencher cette macro par un simple clic sur la cellule A1, j'ai ajouté ceci :
Sub ClicVert()
'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then CaseVerte
End Sub
Je n'obtiens le changement de couleur qu'avec Ctrl+n.
Merci pour les conseils que vous pouvez m'apporter .
JP
Bonjour
Merci de vous intéresser à mon cas.
Alors comment expliquer que çà ne fonctionne pas chez moi ? Serait-ce une question de classement sous forme de feuille ou de module ?
Yes !!!!
En fait, c'était çà. J'ai remarqué que vous aviez placé la première macro en Feuille1 et la deuxième en module. Comme j'avais vaguement lu sur un site, pour un autre sujet, qu'il pouvait y avoir une différence, j'ai essayé et çà fonctionne. J'ai mis la première en feuille1 et la seconde en module3
Maintenant, je vais tenter d'appliquer la formule à une plage de cellules.
Merci beaucoup pour votre aide.
Je reviendrai quand j'aurai un autre souci. Mais il est vrai qu'à mon âge, je ne programme pas beaucoup (pourtant, j'aurais adoré ).
Passez de bonne fêtes de fin d'année
JP
Re,
J'ai remarqué que vous aviez placé la première macro en Feuille1 et la deuxième en module
Tu as une macro évènementielle (Private Sub Worksheet_SelectionChange(ByVal Target As Range) qui se place dans le module de la feuille concernée, la macro n'agira que sur celle-ci et une macro "standard"(Sub CaseVerte ), que tu places dans un module standard et qui peut-être appelée sur d'autres feuilles.
On peut se contenter d'un seul module (celui de la feuille) :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
With Target.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
End SubMaintenant, je vais tenter d'appliquer la formule à une plage de cellules.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1:E10")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
cancel = True
With Target.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
End Sub
Bonne continuation,

