Colorer de jaune dans un premier clic droit puis un second en vert, puis décolorer, etc.

anthoYS

XLDnaute Barbatruc
Bonjour,


Code de la feuille :
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    If c.Column > 1 Or c = "" Then Exit Sub
    Select Case c.Interior.ColorIndex
    Case -4142: c.Interior.ColorIndex = 4
    Case 4: c.Interior.ColorIndex = 6
    Case 6:
        c.Interior.ColorIndex = 3
    End Select
End Sub

Mais il y a un bug quelque part là avec ce code. ("erreur d'exécution '424' objet requis")

je veux clic droit de B à H quelque soit la cellule de cette plage.


Merci par avance,
à+
 

DoubleZero

XLDnaute Barbatruc
Re-bonjour, anthoYS, le Forum,

Que donne ceci ?
VB:
Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal c As Range, Cancel As Boolean)
    Cancel = True
    If c.Column < 2 Or c.Column > 8 Or c = "" Then Exit Sub
    Select Case c.Interior.ColorIndex
    Case -4142: c.Interior.ColorIndex = 4
    Case 4: c.Interior.ColorIndex = 6
    Case 6: c.Interior.ColorIndex = 3
    End Select
End Sub
A bientôt :)
 

anthoYS

XLDnaute Barbatruc
Bonsoir le fil,


Je bloque sur l'interprétation d'un code, car en effet comme le titre le stipule depuis le début, mon souhait est de décolorer à la fin. Or, j'ai peur qu'il ne soit pas possible de pouvoir établir la liste des courses dans ce cas, à moins d'indiquer dans le code, qu'il faille liste en "HA" à partir de A2 les éléments en rouge dans l'autre onglet (liste des courses).

Voici un bout du code (le reste étant inutile) :
VB:
  If c.Column > 4 Or c = "" Then Exit Sub
    Select Case c.Interior.ColorIndex
    Case -4142: c.Interior.ColorIndex = 4
    Case 4: c.Interior.ColorIndex = 6
    Case 6: c.Interior.ColorIndex = 3
    Case 3
        c.Interior.ColorIndex = 3
        Sheets("HA").Range("a" & Rows.Count).End(xlUp)(2) = c


En HA' le code de la feuille est le suivant :
VB:
Option Explicit
Private Sub Worksheet_Activate()
    Range("a1") = Now
    Columns.AutoFit
End Sub

je joint le fichier vous aurez le code en intégralité.
//!\\ Je ne veux pas d'un résultat du code modifié en réponse en brut //!\\, des explications, pistes afin que je le fasse par moi-même.

Là où je bloque c'est par rapport à la ligne
VB:
c.Interior.ColorIndex=3
et celle du dessous. Je n'y comprends rien ou pas grand chose...
En gros, il n'y a pas de boucle, ça s'arrête après la coloration en rouge. Or, je souhaite simplement que ça liste en A2 et au dessous de HA', les éléments en fond rouge. Si je double clique sur un élément en rouge, il devra se décolorer totalement, si je double clique à nouveau, il devra se colorer en vert, puis jaune et enfin rouge, puis ça recommencera.
où alors, qu'un clic droit efface la coloration de la cellule "cliqué droit" à la place. Là aussi, bug

VB:
Private Sub Worksheet_BeforeRightClick(ByVal c As Range, Cancel As Boolean)
  Cancel = True
  If c.ActiveCell(ClearContent) Or c = "" Then Exit Sub
End Sub

Mais non ! ce serait trop simple.
Je n'ai aucune idée de comment modifier ce code afin que cela fonctionne.

Bon je continue de chercher...
Edit :
En HA' je ne comprends pas dans le code
VB:
Activate() ... Columns.AutoFit
S'il s'agit juste de la mise à jour de la date et de l'heure dans cette colonne ou bien de lister les onglets en rouge, je ne vois rien en rapport à ce dernier. Donc ce doit être du code de l'autre feuille qui fait que justement la liste des éléments en rouge s'affichent, à savoir (voir ci-dessous) :
VB:
c.Interior.ColorIndex = 3
        Sheets("HA").Range("a" & Rows.Count).End(xlUp)(2) = c

Merci par avance, prenez votre temps (ceux qui ont l'intention de me venir en aide).
Bonne semaine à venir à tous !

à+

PS : A ceux qui avaient l'intention de me répondre laissez tomber. Merci.
 

Pièces jointes

  • Classeur1.xlsx
    228.4 KB · Affichages: 18
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 083
Messages
2 085 188
Membres
102 809
dernier inscrit
Sandrine83