XL 2010 clic droit = clic gauche

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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Toujours en amélioration de mon classeur de travail, je me trouve devant une nouvelle enigme LOL
J'ai encore besoin de votre aide si précieuse.

Voici le souci :
Vous le verrez dans le classeur joint,
dans le code de la feuille, j'ai une macro qui efface les infos en colonnes : M, N et O quand on clique de G7 à H33

le clic "DROIT", n'est pas considéré comme un clic et la macro ne s'exécute pas

Est-il possible de coder pour que le clic DROIT soit considéré comme un clic GAUCHE ?


Un grand merci si solution il y a.

Très bonne journée à toutes et à tous,
Amicalement,
Lionel,
 

Pièces jointes

Lionel
prier.gif


Tu met juste Flag 😉 ; donc Public Flag as Boolean. Dans la feuille (selection change) Flag = True
Dans (clic-droit) If Flag Then Flag = False la macro - et avant End Sub Flag = True.
 
Dernière édition:
Encore au secours Lone,

Le Flag fonctionne mais me bloque l'exécution d'autres codes et oblige à cliquer droit pour afficher des UserForm

As-tu une solution pour annuler l'effet du Flag ?
J'ai essayé "Flag=False" mais ça ne marche pas.
🙁🙁🙁
 
Marcel dit : "Je ne comprends pas pourquoi tu mets la même chose dans les deux macros."

Le souci est que l'utilisateur peut cliquer en clic gauche ou en clic droit.
Si un seul code peut permettre l'exécution en cas de clic gauche ou de clic droit, je suis preneur 😉
As-tu au moins essayé d'effectuer la modification que j'ai proposée (désactivation de l'affichage du menu contextuel) sur ton fichier du message #17 ???

Chez moi le fonctionnement est ainsi logique, mais s'il ne correspond pas à ce que tu veux alors il va falloir être beaucoup plus clair sur le fonctionnement que tu veux obtenir et on verra si on arrive à trouver quelque chose correspondant mieux à tes attentes. 😉
 
Dernière édition:
Au final, n'est-ce pas simplement la désactivation de l'affichage du menu contextuel que tu demandes depuis le début ?

J'essaye de comprendre la question car tu dis que le fichier du loup résout ton problème or ça ne semble pas le faire chez moi, donc j'en déduis que je n'ai en fait toujours pas compris la question. 🙁
 
Bonjour Marcel,
Merci d'être encore là 😉

J'avais tenté ta solution du post 18 mais sans succès.

Voici avec les 2 fichiers joints ou on en est :
- avec le Run
C'est( bon mais ça beug quand je le mets dans mon fichier de travail,

- avec le Flag
C'est bon et ça fonctionne mais me bloque l'exécution d'autres codes et oblige à cliquer droit pour afficher des UserForm
As-tu une solution pour annuler l'effet du Flag ?

Encore un grand merci à vous tous,
Amicalement,
Lionel,
 

Pièces jointes

Effectivement, les deux fichiers donnent le même résultat. Ils fonctionnent bien tous les deux.

Mais c'est quand j'intègre les codes dans mon fichier de travail que ça ne marche plus :

- avec le Run
C'est bon mais ça beug quand je le mets dans mon fichier de travail,

- avec le Flag
C'est bon et ça fonctionne mais me bloque l'exécution d'autres codes et oblige à cliquer droit pour afficher des UserForm

Bonne soirée à toi aussi 🙂
Amicalement,
Lionel,
 
Bonsoir Lionel

Fait un essai avec ceci

VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
    
  If Not Intersect(R, Range("h7:h20000")) Is Nothing Then Exit Sub
    If Not Intersect(R, Range("G7:G20000")) Is Nothing And R.Count = 1 Then
        flag = True
        If MsgBox("Je téléphone = OUI    - SINON = NON", vbQuestion + vbYesNo) <> vbNo Then
            R.Offset(0, 6) = ""
            R.Offset(0, 7) = ""
            R.Offset(0, 8) = ""
            R.Select
            Selection.Copy
            flag = False
        End If
    End If
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal R As Range, Cancel As Boolean)
        flag = True
        If Not Intersect(R, Range("h7:h20000")) Is Nothing Then
        If MsgBox("Je téléphone = OUI    - SINON = NON", vbQuestion + vbYesNo) <> vbNo Then
            R.Offset(0, 5) = ""
            R.Offset(0, 6) = ""
            R.Offset(0, 7) = ""
            R.Select
            Selection.Copy
            flag = False
        End If
    End If
    Cancel = True
End Sub
 
Dernière édition:
- 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
25
Affichages
1 K
Retour