Tal vez sea la versión de tu office.
Para quitar la barra, ejecuta la siguiente macro:
Sub QuitarMenu()
'Por.Dante Amor
On Error Resume Next
CommandBars("Menu de hojas").Delete
End Sub
Te anexo otra opción con lista de validación. Pon la siguiente macro en los eventos de ThisWorkbook, guarda el archivo y ejecuta la macro "SeleccionarHojas".
Al principio de las macros estoy declarando la variable celda, cambia en la macro "D5" por la celda en la que quieras que se cree la lista de validación; cuando ejecutes la macro, la lista de validación se creará en todas las hojas conteniendo el nombre de todas las hojas.
Private Const celda = "D5"
'
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'Por.Dante Amor
SeleccionarHojas
End Sub
'
Private Sub Workbook_Open()
'Por.Dante Amor
SeleccionarHojas
End Sub
'
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Por.Dante Amor
If Target.Count > 1 Then Exit Sub
If Target.Address(False, False) = celda Then
If Target.Value = "" Then Exit Sub
For Each h In Sheets
If UCase(h.Name) = UCase(Target.Value) Then
existe = True
Exit For
End If
Next
If existe Then
Sheets(Target.Value).Select
Range(celda).Value = ""
Else
MsgBox "La hoja ya no existe, se actualizarán los nombres", vbCritical, "ERROR"
Target.Value = ""
SeleccionarHojas
End If
End If
End Sub
'
Sub SeleccionarHojas()
'Por.Dante Amor
Application.ScreenUpdating = False
activa = ActiveSheet.Name
For Each h In Sheets
cad = cad & h.Name & ","
Next
cad = Left(cad, Len(cad) - 1)
'
For Each h In Sheets
h.Select
With Range(celda).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=cad
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Nombre de hoja incorrecto"
.InputMessage = ""
.ErrorMessage = "Solamente se permiten nombres de hoja"
.ShowInput = True
.ShowError = True
End With
Next
Sheets(activa).Select
Application.ScreenUpdating = True
End Sub
[code]:)
Saludos. Dante Amor. Recuerda valorar la respuesta.