Couleurs de cellules sur Click

  • Initiateur de la discussion Christian
  • Date de début
C

Christian

Guest
Bonjour,
J'ai créer une grille de loto comprenant 90 numéros. Je souhaiterais que la couleur de fond de la cellule puisse changer sur click de souris. A chaque click, je voudrais que deux couleurs s'alternent. J'ai lu un peu de code trouvé sur votre site, mais......
J'ai tenté ceci, mais bien entendu, ça ne marche pas:
Private Sub CommandButton1_Click()

If ActiveCell.Interior.ColorIndex = xlNone Then

If ActiveCell.Interior.ColorIndex = xlNone Then
Selection.Interior.ColorIndex = 8


End If
End Sub

Merci de votre aide,
 
T

Tonio

Guest
Bonsoir Christian, Bonsoir le forum

Je suis novice moi-même en VBA, mais je crois malgré tout
Avoir une solution a ton problème

Voici un petit code que je pense qui pourras t'aider.
Je l’ai testé et ça marche.

'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'If ActiveCell.Interior.ColorIndex = xlNone Then
'Selection.Interior.ColorIndex = 16
'Else
'If Selection.Interior.ColorIndex = 16 Then
'Selection.Interior.ColorIndex = 8
'End If
'End If
'End Sub

'============================================================
' Ou celui-ci
'============================================================

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Interior.ColorIndex = xlNone Then
Selection.Interior.ColorIndex = 16
Else
If ActiveCell.Interior.ColorIndex = 16 Then
Selection.Interior.ColorIndex = 8
Else
If ActiveCell.Interior.ColorIndex = 8 Then
Selection.Interior.ColorIndex = 16

End If
End If
End If
End Sub


Tu n'as plus ka changer les n° en fonction de la couleur désirée.


A ++ Tonio………..
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour Christian, bonjour Tonio

Un peu tiré par les cheveux et non les chevaux (Bonjour Monique & Charles), une macro qui fonctionne un peu selon ton désir.
Bon ouikand à toutes & à tous.
[file name=CellClig.zip size=14100]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CellClig.zip[/file]
 

Pièces jointes

  • CellClig.zip
    13.8 KB · Affichages: 38

PAPA WALKER

XLDnaute Junior
Merci beaucoup, je vais à présent chercher un bout de code pour faire clignoter la dernière cellule sélectionnée.

J'ai trouvé une macro ppur remettre les couleur à XlNone,
Sais-tu comment je peux limiter la plage de cellules concernées de A3 à J11?

Merci encore, JE crois que ce site n'est pas prêt de quitter mes favoris!

Cordialement
:)
 
T

Tonio

Guest
Bonjour le Forum
Bonjour Christian

Comme je l'ai dit je suis novice moi même en VBA.
Mais si je peux malgré tout rendre service.
Quand on débute on na pas forcement les bons codes (c'est sur)
Mais quand on arrive à faire fonctionner une appli. comme on le désire, ça reste le meilleur des codes,
Jusqu’au jour ou l’on trouve mieux.

Sur ce Bonne journée a tous

A+++ Tonio...........
 

Eric C

XLDnaute Barbatruc
Re bonjour le forum
Re bonjour Christian, re bonjour Tonio

Tu sais Tonio, je ne vaux guère mieux que toi quand à la maîtrise de VBA surtout vis à vis de mes paires ici présents. J'ai recours à leurs astuces et je bidouille (quand j'en ai le temps car je n'en ai plus aussi souvent que je le voudrais).

Pour Christian et son désir de sélectionner quelques cellules :
Code:
With Worksheets('Feuil1')
.ScrollArea = 'a3:j11'
End With

Bonne fin de ouikand à toutes & à tous ;)
 

PAPA WALKER

XLDnaute Junior
Bonjour et merci pour toutes vos réponses. Comme je débute, peux-tu me dire où je dois insérer cette ligne dans mon code? Il est très court, je te l'envoi,
Cordialement,

PS, je vais m'y mettre car il y a beaucoup de leçons qui me paraissent idéales pour découvrir out ça.

Private Sub RAZ_Click()

Range('a1:j11').Select
Selection.Interior.ColorIndex = xlNone
Selection.Font.ColorIndex = 1
Range('a3').Select
Selection.Interior.ColorIndex = xlNone
End Sub




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A3:J11')) Is Nothing Then Else
If ActiveCell.Interior.ColorIndex = xlNone Then
Selection.Interior.ColorIndex = 27
Else
If ActiveCell.Interior.ColorIndex = 27 Then
Selection.Interior.ColorIndex = xlNone
Else
If ActiveCell.Interior.ColorIndex = xlNone Then
Selection.Interior.ColorIndex = 27

End If
End If
End If
End Sub
 
M

Moa

Guest
Re Salut !

En jetant un oeil rapidement :

Range('a3').Select
Selection.Interior.ColorIndex = xlNone

Cette dernière ligne ne sert à rien, puisque'elle est déjà comprise dans ta première sélection :

Range('a1:j11').Select

Ensuite :

If Not Application.Intersect(Target, Range('A3:J11')) Is Nothing Then Else

Pas de 'Else à la fin de cette ligne.

Puis :

Selection.Interior.ColorIndex = 27
Else

Pas besoin de 'Else', non plus ici.

Puis enfin :

Pas la peine de répéter :

If ActiveCell.Interior.ColorIndex = xlNone Then
Selection.Interior.ColorIndex = 27

Tu l'as déjà déclaré une fois.

If....Then....Else veut dire :

Si....Alors...Sinon

Tu n'as pas toujours besoin du 'Else' de même tu n'a pas toujours besoin de mettre deux 'If'.

Ainsi :

Private Sub RAZ_Click()
Range('a1:j11').Select
Selection.Interior.ColorIndex = xlNone
Selection.Font.ColorIndex = 1
End Sub

Puis :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A3:J11')) Is Nothing Then
If ActiveCell.Interior.ColorIndex = xlNone Then
Selection.Interior.ColorIndex = 27

Else:
Selection.Interior.ColorIndex = xlNone

End If
End If
End Sub

@ +++

Moa
 
M

Moa

Guest
Re Moa !

Et si jamais tu voulais deux couleurs intermédiaires :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Application.Intersect(Target, Range('A3:J11')) Is Nothing Then

If ActiveCell.Interior.ColorIndex = xlNone Then
Selection.Interior.ColorIndex = 12

ElseIf ActiveCell.Interior.ColorIndex = 12 Then
Selection.Interior.ColorIndex = 8

Else:
Selection.Interior.ColorIndex = xlNone

End If
End If

End Sub
 

galopin01

XLDnaute Occasionnel
bonsoir,
Pour résumer :

Private Sub RAZ_Click()
Range('A3:J11').Interior.ColorIndex = xlNone
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A3:J11')) Is Nothing Then
With Target.Interior
If .ColorIndex = xlNone Then .ColorIndex = 27 Else .ColorIndex = xlNone
End With
End If
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 241
Messages
2 086 526
Membres
103 242
dernier inscrit
Patoshick