comment coloriser les cellules en cliquant dessus

altinea

XLDnaute Accro
bonjour, j'ai eu la semaine dernier une reponse a ma question. Cette semaine j'aimerai pouvoir changer la couleur d'un cellule en cliquant dessus, jusque là pas de problem, par contre ce que j'aimerai faire c'est :

cellule blanche -> clic 1 devient bleu -> clic 2 devient vert -> clic 3 devient rouge -> clic 4 redevient blanche

et cela en ayant la possiblité de le faire sur des colonnes qui ne sont pas contigues

merci à vous tous qui savez
 

Jacques87

XLDnaute Accro
Re : comment coloriser les cellules en cliquant dessus

Bonjour,

Tu veux faire un véritable feu d'artifice (lol)

Pour répondre à ta question, je pense que tu devrais reprendre ton code et y ajouter des tests du genre :

si la cellule est blanche lors elle devient bleue, sinon si elle est bleue alors elle devient verte etc ...

If ... Then
ElseIf .... Then
ElseIf ... Then
End If

Bon courage
 
Dernière édition:

altinea

XLDnaute Accro
Re : comment coloriser les cellules en cliquant dessus

ci apres la formule qui fonctionne, mais je sais pas comment faire pour ce que tu m'as proposé



Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Colonne As Integer
Cancel = True 'evite le mode édition lié au double-clic

Colonne = Target.Column

Select Case Colonne

Case Is = 1:
'colonne 1 couleur rouge
If Target.Interior.ColorIndex = 3 Then
Target.Interior.ColorIndex = x1None
Else
Target.Interior.ColorIndex = 3
End If
Case Is = 2:
'colonne 2 couleur blanc
If Target.Interior.ColorIndex = 2 Then
Target.Interior.ColorIndex = xlNone
Else
Target.Interior.ColorIndex = 2
End If
Case Is = 3:
'colonne 3 couleur vert
If Target.Interior.ColorIndex = 4 Then
Target.Interior.ColorIndex = xlNone
Else
Target.Interior.ColorIndex = 4
End If
Case Is = 4:
'colonne 4 couleur bleu
If Target.Interior.ColorIndex = 5 Then
Target.Interior.ColorIndex = xlNone
Else
Target.Interior.ColorIndex = 5
End If
Case Is = 5:
'colonne 5 couleur jaune
If Target.Interior.ColorIndex = 6 Then
Target.Interior.ColorIndex = xlNone
Else
Target.Interior.ColorIndex = 6
End If
'etc....
End Select
End Sub
 

Jacques87

XLDnaute Accro
Re : comment coloriser les cellules en cliquant dessus

Re,

Voici un exemple qui répond à t question pour toutes les cellules de la feuille. A toi de l'adapter à tes besoins

Attention je n'ai pas respecté l'ordre des couleurs que tu avais donné

Au plaisir
 

Hervé

XLDnaute Barbatruc
Re : comment coloriser les cellules en cliquant dessus

bonjour

une autre syntaxe pour changer les couleurs dans une cellule, astuces données par DidierMDF :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
With Target.Interior
    .ColorIndex = Switch(.ColorIndex = xlNone, 4, _
                         .ColorIndex = 4, 3, _
                         .ColorIndex = 3, 6)
End With

End Sub
salut
 

altinea

XLDnaute Accro
Re : comment coloriser les cellules en cliquant dessus

merci pour les infos c'est vraiment super, je mets en piece jointe le tableau que je voudrai perfectionner, j'aimerai que chaque colonne beneficie de la colorisation fonction du choix qui est fait en couleur mais comment reproduire la formule sans etre obligé de coller le code pour chaque colonne merci
 

Pièces jointes

  • Plan de formation 2007 et programmation1.xls
    44.5 KB · Affichages: 184

porcinet82

XLDnaute Barbatruc
Re : comment coloriser les cellules en cliquant dessus

Salut,

Le code suivant devrait faire ce que tu souhaites :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Colonne As Integer
Cancel = True 'evite le mode édition lié au double-clic
Colonne = Target.Column
If Cells(Target.Row, Target.Column).Interior.ColorIndex = xlNone Then
    Cells(Target.Row, Target.Column).Interior.ColorIndex = 5
ElseIf Cells(Target.Row, Target.Column).Interior.ColorIndex = 5 Then
    Cells(Target.Row, Target.Column).Interior.ColorIndex = 3
ElseIf Cells(Target.Row, Target.Column).Interior.ColorIndex = 3 Then
    Cells(Target.Row, Target.Column).Interior.ColorIndex = 4
ElseIf Cells(Target.Row, Target.Column).Interior.ColorIndex = 4 Then
    Cells(Target.Row, Target.Column).Interior.ColorIndex = 6
ElseIf Cells(Target.Row, Target.Column).Interior.ColorIndex = 6 Then
    Cells(Target.Row, Target.Column).Interior.ColorIndex = 0
End If
End Sub

@+
 

Efgé

XLDnaute Barbatruc
Re : comment coloriser les cellules en cliquant dessus

Bonjour DuncanMcLeod, le fil,
Une proposition sur le code de porcinet82:
Code:
[COLOR=blue]Private Sub[/COLOR] Worksheet_BeforeDoubleClick([COLOR=blue]ByVal[/COLOR] Target [COLOR=blue]As[/COLOR] Range, Cancel [COLOR=blue]As Boolean[/COLOR])
Cancel = [COLOR=blue]True[/COLOR]
Cells(Target.Row, Target.Column).Font.Name = "Wingdings"
[COLOR=blue]If[/COLOR] Cells(Target.Row, Target.Column).Interior.ColorIndex = xlNone [COLOR=blue]Then[/COLOR]
    Cells(Target.Row, Target.Column).Interior.ColorIndex = 3[COLOR=green] ' Rouge[/COLOR]
    Cells(Target.Row, Target.Column) = "L"
[COLOR=blue]ElseIf[/COLOR] Cells(Target.Row, Target.Column).Interior.ColorIndex = 3 [COLOR=blue]Then[/COLOR]
    Cells(Target.Row, Target.Column).Interior.ColorIndex = 4[COLOR=green] ' Vert[/COLOR]
    Cells(Target.Row, Target.Column) = "J"
[COLOR=blue]Else[/COLOR]
    Cells(Target.Row, Target.Column).Interior.ColorIndex = xlNone
    Cells(Target.Row, Target.Column).ClearContents
[COLOR=blue]End If[/COLOR]
[COLOR=blue]End Sub[/COLOR]
Cordialement
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 636
Messages
2 090 378
Membres
104 512
dernier inscrit
rhks0150