Colorier intérieur des cellules

  • Initiateur de la discussion FrèreJacques
  • Date de début
F

FrèreJacques

Guest
Bonjour,

Existe-t-il un code pour changer la couleur d'une cellule, ou de plusieurs cellules non contiguës, d'un simple clic effectué directement sur la (les) cellule(s) concernées, sans passer par la palette de couleurs ni par un bouton de commande ?

Merci de vos réponses.

FJ
 

tontoncarton

XLDnaute Occasionnel
bonjour ,

voila un exemple qui change la couleur de la cellule A1 avec le click droit de la souris

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

If Range('a1').Select Then
Range('a1').Interior.Color = &HFFF
End If
End Sub


apres tout depend si tu as beaucoup de cellules a changer sinon tu adapte le code du genre

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
ActiveCell.Interior.Color = &HFFF
End Sub

ce qui aura pour effet de mettre en rouge n'importe quelle cellules ou tu cliqueras avec le bouton droit

@ +

Message édité par: tontoncarton, à: 26/08/2005 11:11
 

Hervé

XLDnaute Barbatruc
Supporter XLD
Bonjour frèrejacques, tontoncarton, le forum

:)

Une autre synthaxe possible, si tu veux modifié la couleur d'une cellule, si celle-ci est 'blanche' on la colore en rouge et vice versa.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel =
True 'evite l'edition de la cellule lors du double clique

With Target.Interior
    .ColorIndex = IIf(.ColorIndex = xlNone, 3, xlNone)
End With
End Sub

Salut à vous deux

Bonne journée à tout le monde
 

myDearFriend!

XLDnaute Barbatruc
Bonjour FrèreJacques, tontoncarton,

Heu... :eek: désolé tontoncarton, mais :
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
      If Range('a1').Select Then      ---> Ca ne fonctionnera pas !
            Range('a1').Interior.Color = &HFFF
      End If
End Sub
Il vaudrait mieux utiliser quelque chose comme ça (à coller dans le module de code de la feuille) :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
      If Target.Address = '$A$1' Then
            Target.Interior.Color = &HFFF
            Cancel = True           '(pour éviter l'affichage du menu contextuel)
      End If
End Sub
Ou bien comme ça :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
      If Not Application.Intersect(Target, Range('A1')) Is Nothing Then
            Target.Interior.Color = &HFFF
            Cancel = True
      End If
End Sub
Et si on veut obtenir le même effet avec un simple clique gauche :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Not Application.Intersect(Target, Range('A1')) Is Nothing Then
            Target.Interior.Color = &HFFF
      End If
End Sub

Cordialement,

EDITION : Oups, salut Hervé, je ne t'avais pas vu venir.... Cela dit, comme ça, notre ami FrèreJacques aura de quoi répondre à sa question :) ...

Message édité par: myDearFriend!, à: 26/08/2005 11:42
 
F

FrèreJacques

Guest
Ca y est, ça marche !

Après avoir essayé les différents codes proposés, c'est celui d'hervé que j'ai retenu parce qu'il offre plus de simplicité pour le choix des couleurs.

Merci à tous, beau temps et à bientôt !
 

Bricofire

XLDnaute Impliqué
Bonsoir tout le monde :) ,

Frère Jacques, si tu connais un peu ( un peu suffit...) le vba, va voir sur ce fil où j'avais fais un émulateur de pinceau, il serait simple de l'adapter aux couleurs voulue, pour supprimer les valeurs qui sont liées aux couleurs, il suffit de modifier les 'captions' voir simplement d'effacer les lignes vba liées à leurs valeurs après la ligne coul de chaque code de bouton ;)

Clique en dessous :

Lien supprimé

si la formule t'intéresse, mais que le code te bloque, reviens sur ce fil et je t'adapterai la chose si personne ne l'a fait, mais peut-être que lundi soir... :whistle:

Bonne nuit à tous,

Bfr

édition = couleur URL....

Message édité par: bricofire, à: 27/08/2005 00:21

Message édité par: bricofire, à: 27/08/2005 00:23
 

Statistiques des forums

Discussions
299 952
Messages
1 980 342
Membres
207 062
dernier inscrit
K2OPA