Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Clic droit sur onglet

2 réponses
Avatar
Brat'ac
Bonjour,

Avec la commande suivante "Application.CommandBars("Ply").Enabled False"
on désactive le clic droit sur les onglets des feuilles.
Mais est-il possible de ne le faire que sur une feuille spécifique ?
Merci.

2 réponses

Avatar
MichD
Le 02/12/21 Í  05:55, Brat'ac a écrit :
Bonjour,
Avec la commande suivante "Application.CommandBars("Ply").Enabled = False"
on désactive le clic droit sur les onglets des feuilles.
Mais est-il possible de ne le faire que sur une feuille spécifique ?
Merci.

Bonjour,
Ma réponse est en 2 temps :
A ) copie ce qui suit dans le ThisWorkbook de ton classeur :
Dans cette ligne de code : Sh.CodeName = "Feuil1"
"Feuil1" représente la propriété "NAME" de l'objet et non
le nom de l'onglet de la feuille
En VBA, le nom des feuilles est listé de cette manière :
Feuil1(toto)
Feuil1 et le nom de l'objet Worksheet
(toto) le nom de l'onglet de la feuille de calcul.
'---------------------------------
Private Sub Workbook_Open()
Call Workbook_SheetActivate(ActiveSheet)
End Sub
'---------------------------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.CodeName = "Feuil1" Then
Application.CommandBars("Ply").Enabled = False
Else
Application.CommandBars("Ply").Enabled = True
End If
End Sub
'---------------------------------
B ) les procédures précédentes ne couvrent pas la situation suivante :
Imagine que tu fais un clic droit sur l'onglet de la feuille o͹ tu veux
restreindre le clic droit, comme elle n'est pas la feuille active, le
menu contextuel va s'afficher. Je ne connais pas une manière d'empêcher
le clic droit sur une feuille qui n'est pas la feuille active. Il n'y a
aucun événement du ThisWorkbook ou de ladite feuille qui permet de
contrer cette action.
VoilÍ  la limitation des procédures soumises.
MichD
Avatar
Brat'ac
MichD a exprimé avec précision :
Le 02/12/21 Í  05:55, Brat'ac a écrit :
Bonjour,
Avec la commande suivante "Application.CommandBars("Ply").Enabled = False"
on désactive le clic droit sur les onglets des feuilles.
Mais est-il possible de ne le faire que sur une feuille spécifique ?
Merci.

Bonjour,
Ma réponse est en 2 temps :
A ) copie ce qui suit dans le ThisWorkbook de ton classeur :
Dans cette ligne de code : Sh.CodeName = "Feuil1"
"Feuil1" représente la propriété "NAME" de l'objet et non
le nom de l'onglet de la feuille
En VBA, le nom des feuilles est listé de cette manière :
Feuil1(toto)
Feuil1 et le nom de l'objet Worksheet
(toto) le nom de l'onglet de la feuille de calcul.
'---------------------------------
Private Sub Workbook_Open()
Call Workbook_SheetActivate(ActiveSheet)
End Sub
'---------------------------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.CodeName = "Feuil1" Then
Application.CommandBars("Ply").Enabled = False
Else
Application.CommandBars("Ply").Enabled = True
End If
End Sub
'---------------------------------
B ) les procédures précédentes ne couvrent pas la situation suivante :
Imagine que tu fais un clic droit sur l'onglet de la feuille o͹ tu veux
restreindre le clic droit, comme elle n'est pas la feuille active, le
menu contextuel va s'afficher. Je ne connais pas une manière d'empêcher
le clic droit sur une feuille qui n'est pas la feuille active. Il n'y a
aucun événement du ThisWorkbook ou de ladite feuille qui permet de
contrer cette action.
VoilÍ  la limitation des procédures soumises.
MichD

Merci pour les explications.