Comprendo, el codigo que te sirve es el segundo codigo, unicamente cambia:
------------------------------------------------------------------------------------------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error GoTo problema
If Not Sh.CodeName = Hojacode Then
Hojacode = Workbooks(ThisWorkbook.Name).Worksheets(Workbooks(ThisWorkbook.Name) _
.ActiveSheet.Name).CodeName
hojanombre = Workbooks(ThisWorkbook.Name).ActiveSheet.Name
End If
ActiveSheet.Name = "" & Hoja1.Range("C5").FormulaR1C1
problema:
Exit Sub
End Sub
------------------------------------------------------------------------------------------------
Por este codigo ,para que se refiera a la hoja actual
------------------------------------------------------------------------------------------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error GoTo problema
If Not Sh.CodeName = Hojacode Then
Hojacode = Workbooks(ThisWorkbook.Name).Worksheets(Workbooks(ThisWorkbook.Name) _
.ActiveSheet.Name).CodeName
hojanombre = Workbooks(ThisWorkbook.Name).ActiveSheet.Name
End If
ActiveSheet.Name = "" & ActiveSheet.Range("C5").FormulaR1C1
problema:
Exit Sub
End Sub
-----------------------------------------------------------------------------------------------------------
De esta manera, cuando cierres el archivo de excel, los nombres asignados se restauran a los originales del libro.
Califica mi respuesta si te fue util! :)