VBA - Protéger le nom des feuilles d'un classeur

  • Initiateur de la discussion Initiateur de la discussion Krine35
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Krine35

XLDnaute Nouveau
Bonjour,

Au cours d'un projet dans mon école, j'ai réalisé une macro. Le but est de créer une nouvelle feuille et de permettre à l'utilisateur de nommer cette feuille.

Ayant fait un index avec des liens hypertexte, si l'utilisateur change manuellement le nom de la feuille, le lien hypertexte ne fonctionne plus.

C'est pourquoi je souhaiterais à travers ma macro protéger le nom de la feuille (de l'onglet) et empêcher l'utilisateur de la renommer.

J'ai fait de nombreuses recherches sur Internet et je n'ai pas trouvé la réponse à ma question. C'est pourquoi je m'adresse à quiconque qui aurait une solution.

Merci d'avance.

A bientôt.
 
Re : VBA - Protéger le nom des feuilles d'un classeur

Bonjour krine

Tu peux essayer ce code à mettre dans la feuille et le mettre aussi sur le Worksheet_Activate.

Code:
Private Sub Worksheet_Deactivate()
ActiveSheet.Name = "Test"
End Sub
 
Re : VBA - Protéger le nom des feuilles d'un classeur

Bonjour,

Il n'existe pas de procédure évènementielle "NameChange" pour les feuilles du classeur mais tu peux utiliser les évènements "SheetActivate", pour mémoriser le nom et "SheetDeactivate", pour redonner le nom original. A mettre dans le module du classeur (ThisWorkbook) de façon à ce que toutes les feuilles soient prises en compte :
Code:
Dim NomFeuille As String

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    
    NomFeuille = Sh.Name

End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    
    On Error Resume Next
    Sh.Name = NomFeuille
    
End Sub

Hervé.
 
Bonsoir,

J'ai essayé vos 2 techniques et aucune ne fonctionne pour mon cas.

Concernant la réponse de MJ13:
C'est l'utilisateur qui nommera grâce à la macro et la fonction Application.Input Box la feuille. Donc je ne peux pas mettre ta formule car je ne connais pas au préalable le nom que l'utilisateur va mettre pour la feuille.

Concernant la réponse de Theze:
J'ai inséré le code dans le module 'ThisWorkbook) mais cela ne fonctionne pas. Lorsque je change le titre de la feuille. Le lien hypertexte ne se fait pas et un message d'erreur apparaît.

Merci pour vos réponses. Si vous avez d'autres idées ou d'autres explication, n'hésitez pas 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
72
Affichages
1 K
Retour