Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

2 fois Private Sub Worksheet_BeforeRightClick

  • Initiateur de la discussion Initiateur de la discussion seagull
  • 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 !

S

seagull

Guest
Bonjour,
dans une feuille j' ai, d'une part ceci:

Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

    If Intersect(Target, Range("d8:i14,d20:i26,d34:i40,n8:s14,n20:s26,n34:s40,x8:ac14,x20:ac26,x34:ac40")) Is Nothing Then Exit Sub
   Select Case Target.Interior.ColorIndex
    
    Case xlNone
        Target.Interior.ColorIndex = 4
    Case 4
        Target.Interior.ColorIndex = 15
    Case 15
        
        Target.Interior.ColorIndex = 4
    End Select
    If ActiveCell.Interior.ColorIndex = 15 Then
    ActiveCell.FormulaR1C1 = "0"
    ElseIf ActiveCell.Interior.ColorIndex = 4 Then
    
    ActiveCell.FormulaR1C1 = "X"
    End If
    
    Cancel = True
    
    
End Sub

d'autre part j'ai cela:

Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)


If Intersect(Target, Range("c8:c14,c20:c26,c34:c40,m8:m14,m20:m26,m34:m40,w8:w14,w20:w26,w34:w40")) Is Nothing Then Exit Sub
    
    statut.Show
   
    Cancel = True
    
    End Sub

mais les 2 codes dans la même feuille ne fonctionnent pas (erreur nom ambigu) et je ne parviens pas à les imbriquer pour que cela fonctionne dans le même Private Sub Worksheet_BeforeRightClick
pouvez vous m'aider svp? j'ai bien trouvé quelques discussions sur le sujet mais...pas moyen
merci
 
Re : 2 fois Private Sub Worksheet_BeforeRightClick

Bonsoir Seagull,

As-tu essayé cette forme ?
VB:
Option Explicit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Range("d8:i14,d20:i26,d34:i40,n8:s14,n20:s26,n34:s40,x8:ac14,x20:ac26,x34:ac40")) Is Nothing Then Exit Sub
        Select Case Target.Interior.ColorIndex
            Case xlNone
                Target.Interior.ColorIndex = 4
            Case 4
                Target.Interior.ColorIndex = 15
            Case 15
                Target.Interior.ColorIndex = 4
        End Select
        If ActiveCell.Interior.ColorIndex = 15 Then
            ActiveCell.FormulaR1C1 = "0"
        ElseIf ActiveCell.Interior.ColorIndex = 4 Then
            ActiveCell.FormulaR1C1 = "X"
        End If
        Cancel = True
        If Intersect(Target, Range("c8:c14,c20:c26,c34:c40,m8:m14,m20:m26,m34:m40,w8:w14,w20:w26,w34:w40")) Is Nothing Then Exit Sub
        statut.Show
        Cancel = True
End Sub

A+
 
Re : 2 fois Private Sub Worksheet_BeforeRightClick

Bonsoir,
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("D8:I14,D20:I26,D34:I40,N8:S14,N20:S26,N34:S40,X8:AC14,X20:AC26,X34:AC40")) Is Nothing Then
Cancel = True
Select Case Target.Interior.ColorIndex
    Case xlNone
        Target.Interior.ColorIndex = 4
        Target = "X"
    Case 4
        Target.Interior.ColorIndex = 15
        Target= "0"
    Case 15
        Target.Interior.ColorIndex = 4
        Target = "X"
    End Select
End If
If Not Intersect(Target, Range("C8:C14,C20:C26,C34:C40,M8:M14,M20:M26,M34:M40,W8:W14,W20:W26,W34:W40")) Is Nothing Then
Cancel = True
statut.Show
End If
End Sub
A+
kjin
 
Re : 2 fois Private Sub Worksheet_BeforeRightClick

Bonjour,
Le code de Kjin fonctionne et j'avais déjà essayé celui de FredOo mais ça ne marchait pas(une instruction sur les 2 fonctionne) en tous cas un grand merci pour vos interventions à tous les 2😉.
Comme je suis très basique en VBA, Peux-tu m'expliquer le changement Kjin, je vois not intersect au lieu de intersect et plus de exit sub ?🙄
à+
seagull
 
Re : 2 fois Private Sub Worksheet_BeforeRightClick

Bonjour,
L'opérateur Not est un opérateur logique (touche F1 dans vbe) qui ici inverse le test de "IsNothing"
En clair, ce que tu as essayé de faire c'est.....
....du coup, la condition 2 n'est jamais réalisée si la condition 1 est fausse
Il fallait donc tester l'inverse
J'espère avoir été suffisamment clair
A+
kjin
 
Re : 2 fois Private Sub Worksheet_BeforeRightClick

Merci Kjin,
c'est super bien expliqué! j'ai tout compris (à ce niveau🙄)
au fait, dans la 2ème partie de mon code, j'appele un userform (statut), sais tu comment je peux faire en sorte pour que l'userform s'ouvre à proximité de la cellule concernée, comme dans un clic droit classique
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
508
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…