Microsoft 365 annuler clic gauche si double clic ou clic droit

Usine à gaz

XLDnaute Barbatruc
Bonjour le Forum,
Bonne fin de dimanche :)

Il y a un déjà longtemps, j'avais posté cette question sans avoir trouvé de solution.
Nous en étions arrivé, si je me souviens bien, à ce que ce bon sang de clic gauche, si double clic ou clic droit, s'exécute toujours en premier. Et pas moyen de ne pas exécuter "Private Sub Worksheet_SelectionChange(ByVal R As Range)" et le code qui va avec.

Le temps passant, nos ténors étant toujours en évolution en répondant à nos demandes toujours plus folles dingues (et ils ont de koi faire lol), je me permets de reposer la question.

Est-il possible de neutraliser le clic gauche ou de faire en sorte que le double clic ou clic droit s'exécutent en premier ? Sans grand espoir mais sait-on jamais avec nos magiciens.

Comme dirait un illustre inconnu : j'ai le non, je cherche le oui
En cas, je joins un petit fichier test.
Je vous remercie vivement,
Amicalement,
lionel,
 

Pièces jointes

  • clic.xlsm
    22.6 KB · Affichages: 21
Dernière édition:
Solution
re,

nouvelle version qui règle un petit bug quand on faisait doubleclic ou clic droit sur la cellule déjà active, la sélection suivante était désactivée, réglé avec ce code modifié.

Bien cordialement, @+
VB:
Option Explicit
Dim Mem_Target As Range, Bloque_Selection As Boolean
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Mem_Target Is Nothing Then Bloque_Selection = True
If Not Application.Intersect(Target, Range("a1:z10000")) Is Nothing Then
    Cancel = True
    MsgBox "C'est un double clic sur la cellule " & Target.Address, vbOKOnly + vbInformation
End If
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Mem_Target Is Nothing Then...
re,

nouvelle version qui règle un petit bug quand on faisait doubleclic ou clic droit sur la cellule déjà active, la sélection suivante était désactivée, réglé avec ce code modifié.

Bien cordialement, @+
VB:
Option Explicit
Dim Mem_Target As Range, Bloque_Selection As Boolean
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Mem_Target Is Nothing Then Bloque_Selection = True
If Not Application.Intersect(Target, Range("a1:z10000")) Is Nothing Then
    Cancel = True
    MsgBox "C'est un double clic sur la cellule " & Target.Address, vbOKOnly + vbInformation
End If
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Mem_Target Is Nothing Then Bloque_Selection = True
If Not Application.Intersect(Target, Range("a1:z10000")) Is Nothing Then
    Cancel = True
    If Target.Count = 1 Then
        MsgBox "C'est un clic droit sur la cellule " & Target.Address, vbOKOnly + vbInformation
    Else
        MsgBox "C'est un clic droit sur les cellules " & Target.Address, vbOKOnly + vbInformation
    End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Mem_Target = Target
Application.OnTime Now() + TimeValue("00:00:01"), "'" & ThisWorkbook.Name & "'!" & ThisWorkbook.Worksheets(ActiveSheet.Name).CodeName & ".Differe_Worksheet_SelectionChange"
End Sub
Private Sub Differe_Worksheet_SelectionChange()
DoEvents
If Bloque_Selection Then Bloque_Selection = False: Set Mem_Target = Nothing: Exit Sub
If Mem_Target.Count = 1 Then
    MsgBox "Worksheet_SelectionChange, je m'exécute sur la cellule " & Mem_Target.Address
Else
    MsgBox "Worksheet_SelectionChange, je m'exécute sur les cellules " & Mem_Target.Address
End If
Set Mem_Target = Nothing
End Sub
 

Discussions similaires

Réponses
5
Affichages
696

Statistiques des forums

Discussions
315 134
Messages
2 116 614
Membres
112 811
dernier inscrit
shade1452