Excel - orden de hojas

Como podría hacer para que el orden de las hojas que se van creando día a día en un libro de excel no pueda ser alterado por el usuario,
Ejemplo: Sea un libro en el que cada día se crea las fechas respectivas, es decir, para un determinado mes cualquiera por ejemplo noviembre, se crea para el primer día la hoja 01 al siguiente día se crea la hoja 02 y así sucesivamente se tendrá las hojas 01, 02, 03, 03 (2), 04, 05, 05 (2), 05 (3), 06... 28, 29... Etc. Que corresponden a los días de dicho mes. Deseo que el usuario no pueda modificar (por ningún medio) el orden de las hojas creadas en dicho libro en ningún momento. Pero que le sea posible modificar la información que se encuentre en las hojas
¿Y qué si fuera necesario cambiar el orden de las hojas estas se haga introduciendo alguna clave?
{"Lat":-17.7784394983417,"Lng":-63.2104825973511}

1 Respuesta

Respuesta
1
Para lograr esto debes agregar el siguiente codigo en cada uno de las hojas, Me.Name = "NombreHoja", donde NombreHoja es el nombre que siempre quieres que tenga la hoja, el código deberá ser agregado en el Evento Worksheet_Deactivate.
'
Private Sub Worksheet_Deactivate()
    Me.Name = "NombreHoja"
End Sub
'
Espero que esto solucione tu problema, no olvides finalizar la pregunta :-D
Hola,
Respecto al código, no funciona, he metido el código y se puede cambiar el nombre de la hoja sin ninguna dificultad,
Lo que realmente me interesa es que el orden en el que se vaya creando las hojas no sea alterado por nadie, pero que sea posible crear nuevas hojas
El código funciona, si deja cambiar el nombre de la hoja, pero cuando pasas a otra hoja y regresa ella, devuelve el nombre puesto en NombreHoja, intentalo.
Tal vez, no me explicado bien. Un libro cualquiera se crea con el mes noviembre, en el cual se se irán creando día a día una determinada fecha 01,02,03,04... etc. Dicho libro empezara con la fecha 01 que corresponde al primero de noviembre, en esta primer hoja se meterá y/o manipulara información, al siguiente día se creara la siguiente hoja con el nombre 02 que corresponderá al 2 de noviembre y así sucesivamente.
El usuario debe ser capaz de crear nuevas fechas (hojas), ya sabes con el ratón se da clic derecho sobre el nombre de la hoja y se escoge del menu contextual mover o copiar, luego se selecciona copiar dicha hoja y se marca mover al final y listo se creara una copia de la hoja seleccionada y se la pondrá al final ok, luego el usuario cambiara el nombre de la hoja por el del día respectivo, una vez hecho esto el usuario ya no debe poder modificar el orden en el que las hojas han sido creadas... solo podrá manipularlas pero no debe poder moverlar con el ratón... Ejemplo
01/02/02 (2)/03/04/05
Representan las fechas de noviembre creadas hasta el 5 de noviembre, el usuario no debe poder cambiar el orden de dichas hojas ya creadas con el ratón, pero que le sea posible ir creando nuevas fechas
01/02/02 (2)/03/04/05/06/07/08...
Acá te adjunto un ejemplo con lo que quieres, lo cual realiza lo siguiente: Supongamos que tenemos un libro que tiene 3 hojas, Enero, Febrero Marzo, espues de haber definido los nombres debemos ingresar el siguiente código en cada una de las hojas.
'Hoja1 (Enero)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Me.Name <> "Enero" Then
      Me.Name = "Enero"
   End If
End Sub
'Hoja2 (Febrero)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Me.Name <> "Febrero" Then
      Me.Name = "Febrero"
   End If
End Sub
'Hoja3 (Marzo)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Me.Name <> "Marzo" Then
      Me.Name = "Marzo"
   End If
End Sub
'
Si cambias el nombre de cualquiera de las hojas dejará hacerlo, pero luego de seleccionar cualquier celda de la hoja regresará su nombre original, y para mantener el orden escribe lo siguiente en la parte que dice ThisWorkbook
'
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   Sheets("Enero").Move before:=Worksheets(1)
   Sheets("Febrero").Move after:=Worksheets("Enero")
   Sheets("Marzo").Move after:=Worksheets("Febrero")
End Sub
'Cuando estes trabajando con el libro si dejará mover las hojas, pero cuando guardes las reestablecerá al orden que tenías.
Aca te adjunto un link para que descargues un ejemplo:
http://download753.mediafire.com/0yizlieozmmg/mijou3oldnt/Restringir+Cambiar+Nombre+Hoja.xls

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas