Clic droit donne nombre de cellule

  • Initiateur de la discussion Initiateur de la discussion gourdin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gourdin

XLDnaute Impliqué
Bonjour,

Le code suivant (merci le forum) colorie en jaune les cellules dont la valeur est la valeur de la cellule sur laquelle on a fait un clic droit (cf. fichier joint)

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim c
Cancel = True
For Each c In Range("B10:F27")
If c = Target Then c.Interior.ColorIndex = IIf(c.Interior.ColorIndex = 6, xlNone, 6)
Next c
End Sub

Je souhaiterais également (avec le même clic droit) avoir le nombre de cellules coloriées en jaune (= nombre de cellules dont la valeur est la même que la cellule sur laquelle on fait un clic droit).

Voir exemple joint

Merci
 

Pièces jointes

Re : Clic droit donne nombre de cellule

Bonjour gourdin,

Avec :

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim c
Cancel = True
For Each c In Range("B10:F27")
If c = Target Then c.Interior.ColorIndex = IIf(c.Interior.ColorIndex = 6, xlNone, 6)
If c.Interior.ColorIndex = 6 Then i = i + 1
Next c
Range("a1") = i
End Sub

Bonne journée.

Jean-Pierre
 
Re : Clic droit donne nombre de cellule

Bonjour Gourdin,
Dans la boucle que tu nous mets, c correspond à la cellule comparée
D'ou
c = valeur de la cellule
c.row = N° de la ligne
c.column = N° de la colonne
c.Interior.ColorIndex = Index de la couleur

Donc, avec ça tu devrais pouvoir en déduire le bon code
Bonne journée
 
Re : Clic droit donne nombre de cellule

Bonjour à tous

Je propose ceci :
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Application.ScreenUpdating = False
Set maplage = Range("B10:F27")
If Intersect(maplage, Target) Is Nothing Then Exit Sub
Cancel = True
If Target = "" Then Exit Sub
If maval <> "" And maval <> Target Then Range("B10:F27").Interior.ColorIndex = xlNone
For Each c In maplage
    If c = Target Then c.Interior.ColorIndex = IIf(c.Interior.ColorIndex = 6, xlNone, 6): i = i + 1: Range("F30") = i
Next c
maval = Target
If Target.Interior.ColorIndex = xlNone Then Range("F30").ClearContents
End Sub
avec une déclaration de "maval" en Public en tête d'un module.
Cette solution gère Range("F30"), efface l'ancienne sélection, les cellules vides dans la plage et le menu à l'extérieur de la plage

mais attendons que gourdin nous dise

Eric
 
Re : Clic droit donne nombre de cellule

Pour répondre à Eric 45,

La solution de Chris correspond le mieux à mon projet mais je conserve les autres solutions car elles sont susceptibles de m'interresser pour d'autres projets.

Encore merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
223
Réponses
4
Affichages
243
Retour