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 stebrice, le forum,

J'ai testé ton code, si je clic en A1 de la feuille1, je la colorie bien en vert....

3case-verte.xlsm (14.65 Ko)
module feuille module standard

Cordialement,

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 Sub

Maintenant, 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,

Rechercher des sujets similaires à "changer couleur"