Unificar hojas

Quisiera que me ayudaras a pedalear con un proyectito que tengo, no se mucho poco, nada de excel.
Tengo un libro con muchas hojas, las cuales unas dependen una de la otra, porque hay fórmulas que cogen datos de una y otra información.
Lo que hice en un principio fue en la hoja 1 le di apariencia a unas celdas como botones, solo color y relleno, utilizando Hipervínculo la cual me llevaba directamente a la hoja deseada RESUMEN digamos y esa hoja también tenia una celda con el nombre VOLVER y regresaba a la hoja principal,,, era exactamente lo que yo quería.
Pero necesito ocultar las demás hojas y solo dejar la hoja1 la principal... Aprendí a ocultar esas hojas clic derecho ocultar o el Visual Base también, en la opción visible, peroooooooooo el problema que cuando las oculto, ya no puedo abrirlas más, lógico porque la oculte.
LO QUE QUIERO: como poder hacer para que solo una página tenga el control de las demás sin que estas se puedan ver; y al apreté digamos la celda donde diga RESUMEN aparezca lo que contiene esa hoja..
Espero me puedas ayudar.

1 respuesta

Respuesta
1
Lo que quieres se puede hacer y hay varias formas de enfocar el problema. Me explico.
1. Usar una hoja a modo de formulario o presentación y/de a ella copiar los datos de las hojas ocultas. Tiene la ventaja de que "nadie" puede tocar las hojas ocultas sino a través de esta hoja, y el inconveniente de copiar datos de unas hojas a otras lo que conlleva un cierto control a la hora de hacerlo. Incluso si no son muchos datos se puede usar un formulario directamente.
2. Ir ocultando y mostrando las hojas ocultas a medida que se necesitan. Tiene la ventaja de que lo que hagas en las hojas ocultas queda ya hecho y el inconveniente de que el usuario verá que hay hojas ocultas, lo cual puede excitar su curiosidad por entrar a ellas, tocar datos o fórmulas que luego comprometan la coherencia del conjunto (no sé como son los datos así que no puede decirte mucho más sobre ello). Dentro de esta opción además se puede hacer un botón por hoja o un desplegable.
No obstante en ambos casos es necesario programar en VBA (macros) para hacerlo correctamente. O al menos a mi no se me ocurre como hacerlo sin recurrir a VBA.
Antes de seguir dime cual de las dos opciones quieres y si fuera la 2ª, que método de acceso a las hojas prefieres.
La opción 1 no la miro muy viable ya que los cuadros tienen diferente información, tamaño y hay hojas de descarga de datos, que son las que llenan los cuadros resumen de cada una de ellas.
La opción 2 se adecua a lo que necesito, crear un botón para cada hoja y dejar la posibilidad de dejar que modifiquen ciertos datos, en los rangos que estén desbloqueados y boquear solo dosde están las fórmulas como yo lo tengo.
Ejemplo de lo que quisiera entonces.
            Descarga de datos cuadros resumen
             Parte Mensual(botón) Resumen(botón)
             Edades(botón)                      BIENVENDOS                   Repitentes(botón)
              Resumen(botón) Edades(botón)
                                                                                                     Asignatura(botón)
                                                                                                     Desertores(botón)
                                                                                          Muchos más...
Como te darás cuenta siempre van a ver más de Cuadro resumen porque algunos datos se van repitiendo no todos y en otros hay que ingresarle datos, directamente ya que sirven como bases de datos. Bueno te puedo confundir, lo que quiero es sencillo digo yo, es que ese ejemplo sea como la cara de la hoja con botones y que al apretarlo me aparezca la hoja que corresponda y pueda hacer en ella lo que quiera en las celdas que se encuentran desbloqueadas... creo que si puedo proteger las hojas o con la macros no, si no se puede pues no importa ni modo.
Bueno aquí tienes un ejemplo sencillo que te servirá de base para lo que quieres. En la hoja1 insertas un botón con el siguiente código:
Private Sub CommandButton1_Click()
Worksheets("Sheet2").Visible = True
Worksheets("Sheet2").Activate
End Sub
Y en la hoja 2 otro botón con el siguiente código:
Private Sub CommandButton1_Click()
Worksheets("Sheet1").Activate
Worksheets("Sheet2").Visible = False
End Sub
Lo que hace esto es que cuando pulsas el botón de la hoja 1, se vuelve visible la hoja 2 y se activa (se ven en la pantalla). El botón de la hoja 2 oculta la hoja y activa la hoja 1. Tendrás que incluir tantas parejas de botones como hojas adicionales tengas.
Entiendo que sabes incluir botones en las hojas, pero por si acaso te explico brevemente. En el menú Developer/Control/Insert/Active Xcontrols insertas el botón dibujándolo como si fuera un rectángulo en la hoja. Pulsas Design en el mismo menú para ponerte en modo diseñó y con el botón derecho sobre el puedes acceder a Propiedades (cambiar nombre, color...) y Código. Si eliges esta segunda te lleva al editor de cogido para que puedas insertar el código.
Se podría optimizar algo el código de todas las hojas pero te va a liar más. Por otro lado on este procedimiento la protección que tengas de las hojas no es necesario que la cambies ya que se conservará. Si por cualquier motivo quieres que el cursor aparezca en una determinada celda lo puedes hacer con ActiveSheet. Range("A3"). Select (en este ejemplol queda la celda A3 con el cursor listo para escribir). Esto debe ir después de la selección de hoja lógicamente.
Hola casi no entendí la instrucción de Developer,,,, pero yo para crear un botón active el programador y en las opciones me fui a insertar controles, que me imagino que es donde me mandabas esta la opción de controles de formularios y controles activesx, probé con ambos botones.
1 Con EL CONTROL DE FORMULARIOS, hice el Botón grabe la macros y me lleva de la página principal a la hoja resumen, muy bien... realice el mismo procedimiento con la hoja resumen y excelente... ya tengo lo que quería en parte, luego ingrese el código que tu me diste en cada hoja y me fije que se creo un modulo también. Pero tu código no hace nada...
2 Con EL CONTRO COMANDO de Activex, que es donde tu creo que me mandabas hice el Botón en la hoja principal, me fui a diseño, clic derecho Ver Código ingrese el código, luego hice lo mismo en el la hoja resumen, esa si no me manda a ningún lado, apretó los botones y ni pio, ni pa.. algo que observe que en esa no se creo ningún modulo...
Ahora la opción 1 no me sirve tampoco ya que el mecanismo es igual a la Hipervínculo, hace exactamente lo mismito llevar y traerme, pero en ambas se miran todas las pestañas de los demás documentos y recuerda que lo que necesito es esconder esas pestañas donde dice hoja 1, hoja 2 . . .
Ahora no se si abrir el Visual Basic y crear el botón allí o que hacer, espero respuesta para ver que fue lo que paso o que hice malo...
Lo que yo te he enviado es para Excel 2007. Si tienes otro puede que los menús sean algo diferentes pero debieran funcionar.
Lo que hago es vía controles ActiveX y te debiera funcionar. Yo lo he probado. Cuando generas un control ActiveX en la hoja normalmente estás en modo di y por eso con el botón derecho puedes modificar las propiedades e insertar el código. Para ejecutar el código tienes que salir del modo diseño.
Otra cosa. El código presupone que tus hojas se llaman Sheet1 y Sheet2. Si tienen otros nombres para las hojas, tendrás que cambiarlos en el código. También puedes cambiarlos en las hojas pero creo que es más engorroso.
Si todo esto lo has considerado entonces tendrás que depurar el código desde el editor de VBA. Lo más sencillo es entrar en el editor. Verás que el código está en las hojas no el un módulo. Te sitúas en la primera línea de cada procedimiento e insertas un punto de parada (F9). Luego vas a la hoja y pulsas el botón. El programa se parará en la primera linea y te la colorea de amarillo. Con F8 puedes ir avanzando y ver qué hace el código en el libro tras cada paso.
Mi office es 2010, pero ese no era el problema, el problema era cambiar los nombre Steel1.
Le agradezco todo el preciado tiempo que me ha regalado, fue una estupenda resolución, muchísimas gracias y Feliz Navidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas