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

Interdire renomage feuille....

8 réponses
Avatar
Dush
Comment interdire en VBA la possibilit=E9 de renomer une=20
feuille ?

merci.

8 réponses

Avatar
Benead
Salut Dush,

Il faut protéger le classeur :
ActiveWorkbook.Protect Password:="zaza", Structure:=True

Mais cela pose d'autres contraintes (Impossible d'ajouter des feuilles, de les déplacer...)

--
A+
Benead
Bretagne
Xl97
-------- ;-)
Dush a écrit:
Comment interdire en VBA la possibilité de renomer une
feuille ?

merci.


Avatar
ChrisV
Bonjour Dush, bonjour à tous,

juste en passant...

Autres soluces possibles, afin d'éviter les contraintes énoncées par
Benead...
(en supposant que l'on désire rendre impossible le "renommage" de la Feuil1
(zaza) par autre chose)

(méthode bof, car pas dynamique...)
Modifier le nom à chaque activation (ou désactivation) de la feuille en
plaçant le code suivant dans la feuille concernée:

Private Sub Worksheet_Activate()
Me.Name = "zaza"
End Sub


Ou, (en dynamique...) dans une feuille quelconque du classeur, saisir la
fonction =MAINTENANT() puis cacher cette feuille en mettant sa propriété
Visible à VeryHidden, puis dans la feuille de code de ThisWorkbook

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
If Feuil1.Name <> "zaza" Then
With Application
.EnableEvents = False
Feuil1.Name = "zaza"
.EnableEvents = True
End With
End If
End Sub


ChrisV


"Dush" a écrit dans le message de
news:62a801c42e29$26417f60$

Comment interdire en VBA la possibilité de renomer une
feuille ?

merci.
Avatar
isabelle
bonjour dush,

une autre solution serait, à l'ouverture du classeur, de grisé les deux
commandes Renommer. et de les remettre en fonction à la fermeture.

Private Sub Workbook_Open()
Application.CommandBars("Ply").Controls("&Renommer").Enabled = False
Application.CommandBars("Worksheet Menu Bar").Controls("Forma&t") _
.Controls("&Feuille").Controls("&Renommer").Enabled = False
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Ply").Controls("&Renommer").Enabled = True
Application.CommandBars("Worksheet Menu Bar").Controls("Forma&t") _
.Controls("&Feuille").Controls("&Renommer").Enabled = True
End Sub

isabelle


Comment interdire en VBA la possibilité de renomer une
feuille ?

merci.


Avatar
sabatier
bonjour, chris...
toujours aussi matinal à ce que je vois...
kestifi en ce moment qu'on ne te voit plus? tu as adhéré à un groupe de
danseurs de sardanes ou quoi? tu me diras, ça nous changera peu de
laurent D qui lui, fait partie maintenant d'un groupe de sardines où il
s'active eu eaux troubles...
jps

ChrisV a écrit:
bonjour à tous,



Avatar
sabatier
troisième solution :
dire au charlot qui voudrait renommer la feuille :
si tu fais un truc pareil, tu prends la porte...
c'est d'ailleurs en ordonnant cela que j'ai pu monter ma propre usine
d'huisseries ; ils étaient nombreux a m'apporter la porte qu'ils avaient
prise
jps

isabelle a écrit:
bonjour dush,

une autre solution serait, à l'ouverture du classeur, de grisé les deux
commandes Renommer. et de les remettre en fonction à la fermeture.

Private Sub Workbook_Open()
Application.CommandBars("Ply").Controls("&Renommer").Enabled = False
Application.CommandBars("Worksheet Menu Bar").Controls("Forma&t") _
..Controls("&Feuille").Controls("&Renommer").Enabled = False
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Ply").Controls("&Renommer").Enabled = True
Application.CommandBars("Worksheet Menu Bar").Controls("Forma&t") _
..Controls("&Feuille").Controls("&Renommer").Enabled = True
End Sub

isabelle


Comment interdire en VBA la possibilité de renomer une
feuille ?

merci.





Avatar
ChrisV
Salut Isabelle,

Seuls petits soucis...

- cela n'interdit pas le double-clic sur l'onglet afin de le renommer...
- impossible de renommer une autre feuille du classeur...
- plus possible de renommer une feuille d'un autre classeur
ouvert tant que celui qui contient la procédure n'est pas fermé...


ChrisV


"isabelle" <"il_était_une_fois......."@..> a écrit dans le message de
news:
bonjour dush,

une autre solution serait, à l'ouverture du classeur, de grisé les deux
commandes Renommer. et de les remettre en fonction à la fermeture.

Private Sub Workbook_Open()
Application.CommandBars("Ply").Controls("&Renommer").Enabled = False
Application.CommandBars("Worksheet Menu Bar").Controls("Forma&t") _
.Controls("&Feuille").Controls("&Renommer").Enabled = False
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Ply").Controls("&Renommer").Enabled = True
Application.CommandBars("Worksheet Menu Bar").Controls("Forma&t") _
.Controls("&Feuille").Controls("&Renommer").Enabled = True
End Sub

isabelle


Comment interdire en VBA la possibilité de renomer une
feuille ?

merci.




Avatar
ChrisV
:-)))

Pas changé JP !
tant mieux..!


ChrisV


"sabatier" a écrit dans le
message de news:
bonjour, chris...
toujours aussi matinal à ce que je vois...
kestifi en ce moment qu'on ne te voit plus? tu as adhéré à un groupe de
danseurs de sardanes ou quoi? tu me diras, ça nous changera peu de
laurent D qui lui, fait partie maintenant d'un groupe de sardines où il
s'active eu eaux troubles...
jps

ChrisV a écrit:
bonjour à tous,






Avatar
Thierry Euzenot
Si comme je l'imagine ton soucis c'est que lorsqu'un utilisateur change le
nom de la feuille tes macros ne fonctionnent plus il existe une solution
simple :

Hypothèse :
Ta feuille se nomme "toto"
Mais elle a aussi un ID que l'on voit dans les propriétés de la feuille dans
la rubrique (name) et qui de base est : Feuil1 à FeuilX

Et ce nom là est impossible à modifier pour un néophite qui n'a pas accès
aux macros.

Donc ton instruction qui au départ devait être :
Sheets("toto").Range("A1")

devient si tu utilise l'ID de la feuille :
Feuil1.Range("A1")

Et en plus c'est plus rapide à coder :o)

Voilà j'espère que j'ai vu juste ^^



"Dush" a écrit dans le message de
news:62a801c42e29$26417f60$

Comment interdire en VBA la possibilité de renomer une
feuille ?

merci.