Double clic provoque une coloration dégradée

anthoYS

XLDnaute Barbatruc
Bonsoir -ou bonjour-

Je vous livre mon soucis.

Je souhaite, que sur une cellule -ou des caractères sont présents- après avoir fait un double clic, il y ait une première coloration, il s'agirait dans un premier temps d'un jaune trés clair. Puis, au second clic la coloration, serait toujours un jaune mais moins clair, ensuite l'on passerait à un vert qui lui aussi se dégraderait, etc...

Si vous avait idée d'un code et d'une MEFC, n'hésitez pas merci.

Au besoin, je vous posterait le fichier, si mes explications ne suffisent pas.

A+ et merci beaucoup à vous.
 

anthoYS

XLDnaute Barbatruc
Re : Double clic provoque une coloration dégradée

Merci. Vraiment pas mal. Sauf que j'ai peut-être oublié de préciser, qu'il s'agissait non pas de la police, mais du fond de la cellule à colorer.

A+

Je vais essayer de modifier le code de la feuille.
 
Dernière édition:

anthoYS

XLDnaute Barbatruc
Re : Double clic provoque une coloration dégradée

Code présent (couleur de police):

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Select Case Target.Font.ColorIndex
Case 36: Target.Font.ColorIndex = 6
Case 6: Target.Font.ColorIndex = 35
Case 35: Target.Font.ColorIndex = 4
Case 4: Target.Font.ColorIndex = 0
Case 0: Target.Font.ColorIndex = 36
Case -4105: Target.Font.ColorIndex = 36
End Select
End Sub

Nouveau pour le font :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Select Case Target.Font.Color
Case 36: Target.Font.Color = 6
Case 6: Target.Font.Color = 35
Case 35: Target.Font.Color = 4
Case 4: Target.Font.Color = 0
Case 0: Target.Font.Color = 36
Case -4105: Target.Font.Color = 36
End Select
End Sub

En réalité je suppose, mais n'ayant pas les connaissances exactes j'ai un doute.

A+, merci de me dire si cela est oK
 

Catrice

XLDnaute Barbatruc
Re : Double clic provoque une coloration dégradée

Bonsoir,

Essaie ceci :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Select Case Target.Interior.ColorIndex
Case 36: Target.Interior.ColorIndex = 6
Case 6: Target.Interior.ColorIndex = 35
Case 35: Target.Interior.ColorIndex = 4
Case 4: Target.Interior.ColorIndex = xlNone
Case xlNone: Target.Interior.ColorIndex = 36
End Select
End Sub
 

eriiic

XLDnaute Barbatruc
Re : Double clic provoque une coloration dégradée

Bonjour tout le monde,

Une autre proposition qui apporte un peu souplesse.
Dans un coin de ton classeur tu nommes une plage 'Dégradé' et tu y mets les couleurs de fond et de police que tu souhaites.
Les couleurs seront récupérées sur cette plage. C'est plus visuel et tu peux augmenter le nombre de dégradés sans toucher le code, en changeant la définition de la plage.
Sur l'exemple l'action est limitée aux 2 plages nommées pl1 et pl2.

eric
 

Pièces jointes

  • Dégradé.xls
    27 KB · Affichages: 114

anthoYS

XLDnaute Barbatruc
Re : Double clic provoque une coloration dégradée

Je ne parviens pas à adapter ce code :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim c As Long, i As Long
    If Intersect(Target, Union([pl1], [pl2])) Is Nothing Then Exit Sub
    c = Target.Interior.ColorIndex
    For i = 1 To Range("Dégradé").Count
        If Range("Dégradé").Cells(i, 1).Interior.ColorIndex = c Then
            Target.Interior.ColorIndex = Range("Dégradé").Cells(i + 1, 1).Interior.ColorIndex
            Target.Font.ColorIndex = Range("Dégradé").Cells(i + 1, 1).Font.ColorIndex
            i = Range("Dégradé").Count
            Cancel = True
        End If
    Next i
End Sub
Pour que mes nouvelles exigences soient valdides.

J'ai tenté d'essayer, et les couleurs de dégradés changent mais s'arrêtent avant, soient aux niveaux de celles que tu (eriiiic) as mises en exemples...

Or, je souhaite prolonger la liste de couleurs. Que changer dans le code pour que ça fonctionne?

En fait je n'avait pas vu, il s'agit de plages nommées. D'accord, autant pour moi.
Il suffit que j'éttende la cellule nommée dégradé ;
Pour ce qui est du reste, colonnes aussi. J'y arriverai.
Je poste le résultat, dès que j'y suis parvenu. La police sera en bleu de ce qui a été rajouté après mon succès et le fichier sera celui ou "revu" sera entre parenthèses.

En fait j'ai renommé mes plages "pla1" et "pla2", puis la nouvelle plage de dégradé : "Degradé".

Merci beaucoup à vous deux pour votre précieuse aide.

Bonne fin de journée et de week-end à vous (vous deux -Catrice et eriiiic- incluant ceux qui ont pris le sujet en cours).
 

Pièces jointes

  • Dégradé2.xls
    38.5 KB · Affichages: 72
  • Dégradé2(revu).xls
    37.5 KB · Affichages: 87
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : Double clic provoque une coloration dégradée

re,

Tu peux nommer 1 ou plusieurs colonnes entières, il suffit de les sélectionner avant de nommer. La définition sera =Feuil1!$A:$A ou =Feuil1!$A:$B.
Si tu n'as qu'une seule plage concernée tu peux enlever union() dans le code.
Et pour que ça corresponde au code il faut que ta plage nommée Dégradé inclue une cellule sans couleurs en dernière position (ça évite un calcul modulo qui n'est pas dans le code)

eric
 

anthoYS

XLDnaute Barbatruc
Re : Double clic provoque une coloration dégradée

bonsoir ou bonjour,


je relance ce sujet,

en effet, je souhaite que le dégradé se fasse sur la colonne A à partir des double clic en B.

ici, le dégradée se fait et sur A et sur B à partir de ce code.

comment ôter "Union" et faire en sorte que le dégradé se fasse depuis B ?

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    Dim c As Long, i As Long
    If Intersect(Target, Union([pla1], [pla2])) Is Nothing Then Exit Sub
    c = Target.Interior.ColorIndex
    For i = 1 To Range("Degradé").Count
        If Range("Degradé").Cells(i, 1).Interior.ColorIndex = c Then
            Target.Interior.ColorIndex = Range("Degradé").Cells(i + 1, 1).Interior.ColorIndex
            Target.Font.ColorIndex = Range("Degradé").Cells(i + 1, 1).Font.ColorIndex
            i = Range("Degradé").Count
            Cancel = True
        End If
    Next i
End Sub

merci
à+
 

Pièces jointes

  • Dégradé3.xls
    37.5 KB · Affichages: 60
  • Dégradé3.xls
    37.5 KB · Affichages: 60
  • Dégradé3.xls
    37.5 KB · Affichages: 57

eriiic

XLDnaute Barbatruc
Re : Double clic provoque une coloration dégradée

Bonsoir,

à tester :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim c As Long, i As Long
    If Intersect(Target, [pla2]) Is Nothing Then Exit Sub
    c = Target.Offset(0, -1).Interior.ColorIndex
    For i = 1 To Range("Degradé").Count
        If Range("Degradé").Cells(i, 1).Interior.ColorIndex = c Then
            Target.Offset(0, -1).Interior.ColorIndex = Range("Degradé").Cells(i + 1, 1).Interior.ColorIndex
            Target.Offset(0, -1).Font.ColorIndex = Range("Degradé").Cells(i + 1, 1).Font.ColorIndex
            i = Range("Degradé").Count
            Cancel = True
        End If
    Next i
End Sub
eric
 

anthoYS

XLDnaute Barbatruc
Re : Double clic provoque une coloration dégradée

salut,

Bonsoir,

à tester :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim c As Long, i As Long
    If Intersect(Target, [pla2]) Is Nothing Then Exit Sub
    c = Target.Offset(0, -1).Interior.ColorIndex
    For i = 1 To Range("Degradé").Count
        If Range("Degradé").Cells(i, 1).Interior.ColorIndex = c Then
            Target.Offset(0, -1).Interior.ColorIndex = Range("Degradé").Cells(i + 1, 1).Interior.ColorIndex
            Target.Offset(0, -1).Font.ColorIndex = Range("Degradé").Cells(i + 1, 1).Font.ColorIndex
            i = Range("Degradé").Count
            Cancel = True
        End If
    Next i
End Sub
eric

merci de ta réponse, par contre, ça ne marche pas sur mon fichier.
le double clic provoque un léger sablier qui cherche et qui disparaît vite.


à+
 

eriiic

XLDnaute Barbatruc
Re : Double clic provoque une coloration dégradée

Bonsoir,

j'avais testé avant de poster, ou alors j'ai mal compris la question.
voir fichier joint.

eric
 

Pièces jointes

  • Dégradé3.xls
    31.5 KB · Affichages: 83
  • Dégradé3.xls
    31.5 KB · Affichages: 90
  • Dégradé3.xls
    31.5 KB · Affichages: 90

anthoYS

XLDnaute Barbatruc
Re : Double clic provoque une coloration dégradée

bonsoir,


non c'est ok, c'est ça.
seulement, dans mon fichier la plage nommée "Degradé" ne comporte que deux cellules (cf pièce jointe ou lien hypertexte de l'image).

dans mon fichier ça ne veux pas.

screenshot.32.jpg
ou agrandi --->


merci
à+
 

Discussions similaires

Statistiques des forums

Discussions
312 155
Messages
2 085 817
Membres
102 991
dernier inscrit
justingr