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.
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
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.
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" <michel.rameaux_sanspub_@wanadoo.fr> a écrit dans le message de news:
D5E612D0-0824-4904-9FF0-46D4C6334E25@microsoft.com...
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.
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.
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.
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" <michel.rameaux_sanspub_@wanadoo.fr> a écrit dans le message de
news: D5E612D0-0824-4904-9FF0-46D4C6334E25@microsoft.com...
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.
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.