Excel - Se puede hacer....

   
Vista:

Se puede hacer....

Publicado por Paco (6 intervenciones) el 11/10/2007 11:27:48
Hola a tod@s,

Haber si me podéis ayudar en lo que quiero realizar (si se puede).

Tengo un libro que contienes una seria de hojas, y unas de esas hojas tiene el nombre de cada una.

Lo que quiero controlar es lo siguiente:

1.- Que no puedan eliminar pestañas
2.- Que cuando cambien el nombre de una de ellas, la hoja que tiene los nombres se actualice.
3.- Que cuando se inserte una nueva hoja, la hoja que tienes los nombres se actualice.

Bueno, eso es todo.

Muchas gracias. Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Se puede hacer....

Publicado por Paco (19 intervenciones) el 11/10/2007 14:24:56
Paco, lo que necesitas se puede hacer de varias maneras.

La más fácil es poner contraseña al libro, no permitiendo insertar hojas al mismo.

Si quieres una solución más rebuscada puedes hacer macros que te hagan el trabajo.

En ese caso en la ventana de Visual Basic (Alt+F11) en un módulo (si no existe insertas uno) copias estos dos macros:

Sub InsertaHoja()
'esta macro inserta una hoja

'primero desprotege el libro (la password la podés cambiar)
ActiveWorkbook.Unprotect Password:="aaa"
'agrega una hoja
Sheets.Add
'vuelve a proteger el libro
ActiveWorkbook.Protect Password:="aaa", Structure:=True, Windows:=False

End Sub

Sub CambioNombre()
'esta macro cambia el nombre de la hoja activa

'primero desprotege el libro
ActiveWorkbook.Unprotect "aaa"

DeNuevo:
'pregunta el nombre propuesto
NombreNuevo = InputBox("Ingrese el nuevo nombre del libro", "Atención:", ActiveSheet.Name)

If NombreNuevo = "" Then
'si se dejó un nombre vacío pone mensaje
MsgBox "Debe ingresar un nombre o mantener el anterior", vbOKOnly + vbInformation, "atención:"
'vuelve al punto DeNuevo
GoTo DeNuevo
Else

'ingresó un nombre
If Len(NombreNuevo) > 30 Then
'controla el largo máximo del nuevo nombre
MsgBox "El nombre es demasiado largo, (máximo 30 caracteres)", vbInformation + vbOKOnly, "Atención"
GoTo DeNuevo
End If
'cambia el nombre
ActiveSheet.Name = "otroNombre2"
End Sub

El punto 3 depende de cual sea la utilidad.
si tienes formulas que hacen referencia a celdas que están en hojas que cambian de nombre, los nombres de las hojas dentro de las fórmulas se actualizan automáticamente.
si necesitas algo más específico y te puedo ayudar estoy a tus ordenes.

Saludos

Guillermo
Montevideo, Uruguay.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar