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

Nom des feuilles

2 réponses
Avatar
Ptit Louis
Bonjour,

Je finis un dossier pour lequel je ne souhaite pas que l'utilisateur modifie
le nom de certaines feuilles puisque VBA travaille avec leurs noms précis.
J'ai interdit la commande "Renommer" mais la modification directe du nom
dans l'onglet est encore active.
Comment verrouiller cet accès.
Merci de vos réponses.

2 réponses

Avatar
MichDenis
A ) Pour empêcher de renommer les feuilles, tu peux
simplement protéger le classeur et non les feuilles
barre des menus / outils / Protection / protéger le classeur /
et tu coches "structure"

B ) Tu peux laisser les usagers s'amuser à modifier le nom des
onglets de la feuille mais dans ton code, utiliser le nom de la
propriété "name" de l'objet "Feuil"

Pour ce faire, quand tu regardes dans la section de gauche, tu vois
toutes les objets feuilles écrits de cette manière :

Feuil1(Feuil1)
le premier Feuil1 -> propriété Name de l'objet Feuil1
le deuxième feuil1 entre parenthèses représente le nom de l'onglet de la feuille.

Dans ton code, au lieu d'écrire

With worksheets("Feuil1") .... (Nom de l'onglet)
ou worksheets("Feuil1").range("A1")....


Tu utilises le nom de la propriété Name
With Feuil1... tout simplement

Ou autre exemple . Feuil1.range("A5").....

A ) En utilisant seulement le nom de l'objet, tu vas même accélérer
l'exécution du code
B ) Tu auras la liste déroulante qui apparaîtra en tout temps lors de la saisie du code



"Ptit Louis" a écrit dans le message de news:

Bonjour,

Je finis un dossier pour lequel je ne souhaite pas que l'utilisateur modifie
le nom de certaines feuilles puisque VBA travaille avec leurs noms précis.
J'ai interdit la commande "Renommer" mais la modification directe du nom
dans l'onglet est encore active.
Comment verrouiller cet accès.
Merci de vos réponses.
Avatar
ChrisV
Bonjour Ptit Louis,

Soluce alternative parmi d'autres...
Dans l'onglet de la feuille concernée, en supposant que la feuille se
nomme"zaza", et qu'il s'agisse de la Feuil1 (propriété "name" de l'objet
"Feuil", telle que l'a indiquée Denis que je salue au passage...)

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


"Ptit Louis" a écrit dans le message de
news:
Bonjour,

Je finis un dossier pour lequel je ne souhaite pas que l'utilisateur
modifie
le nom de certaines feuilles puisque VBA travaille avec leurs noms précis.
J'ai interdit la commande "Renommer" mais la modification directe du nom
dans l'onglet est encore active.
Comment verrouiller cet accès.
Merci de vos réponses.