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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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.
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
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.
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.
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