Erreur d'exécution '1004

Salut tout le monde j’ai un problème dans mon code vba :

Mon classeur « TEST » contient 5 feuilles pour cette exemple mais on réalité il contient plus que ça

Feuil « ACCUEIL »

Feuil « AAA »

Feuil « BBB »

Feuil « CCC »

La feuille « ACCUEIL » a un code vba qui empêcher la modification du nom de l'onglet.

J’ai enregistré une macro qui crée des liens (bien sur fournie par Banzai64) sur la feuille « ACCUEIL »

A l’exécution elle marche bien mais après si je veux cliquer sur un lien la page destinataire est exécutée avec apparition d’un message :

Erreur d'exécution '1004':

Impossible de renommer une feuille comme une autre feuille, une bibliothèque d'objets référencée ou un classeur référencé par Visual basic.

Et si je cliquer sur Débogage la vba s’ouvre sur la feuille «ACCUEIL » et indique la line

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

' Empêcher la modification du nom de l'onglet

If ActiveSheet.Name <> "ACCUEIL" Then

ActiveSheet.Name = "ACCUEIL"

End If

End Sub

Comment faire pour résoudre ce problème.

23test.xlsm (22.84 Ko)

Bonjour

La macro que tu as installée dans le module de la page "Accueil" est exécutée après le changement de page, donc ActiveSheet n'est plus la page "Accueil"

Pour y remédier 2 solutions

Soit par la position de la page

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'    Empêcher la modification du nom de l'onglet

     If Sheets(1).Name <> "ACCUEIL" Then
         Sheets(1).Name = "ACCUEIL"
     End If
 End Sub

Soit par le CodeName

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'    Empêcher la modification du nom de l'onglet

     If Feuil1.Name <> "ACCUEIL" Then
         Feuil1.Name = "ACCUEIL"
     End If
 End Sub

merci ça marche trtés bien

merci Banzai64.

Rechercher des sujets similaires à "erreur execution 1004"