Add-in: formulario administración de hojas (mostrar, ocultar, ordenar, agrupar)
Se añade al Add-in un formulario de administración de hojas, tanto del libro activo, como de todos los libros abiertos.
Se diseña el formulario ante la necesidad de poder mostrar u ocultar hojas mediante una lista y poder elegir las que deseemos; así como también ordenar alfabéticamente.
En cuanto a todas las hojas de los libros abiertos (incluídos los ocultos), se añade la funcionalidad de poder elegir entre todas las hojas y poder agruparlas en un sólo archivo.
Funcionalidad:
Se añade al menú Hojas del Add-in EXCELeINFO, y mostrará un formulario con un MultiPage, el cual tiene dos pestañas. La primer pestaña es la de ‘Hojas libro activo’, donde encontraremos los botones de Mostrar hojas, Ocultar hojas y Ordenar hojas, permiténdonos aplicar cualquiera de las tres opciones a las hojas elegidas, como se muestra en la imagen:
En la segunda pestaña llamada ‘Hojas todos los libros’ aparece una lista de todas las hojas de los libros abiertos (incluyendo los ocultos) y un botón que nos permitirá agrupar las hojas seleccionadas en un archivo nuevo, como se muestra en la imagen:
:: Descargar EXCELeINFO add-in 2.2.2
Buen dia Sergio, quiero ocultar las hojas del proyecto en el que estoy trabajando pero al momento de ejecutar la macro me da un error de “Select” probe el siguiente codigo pero me sigue marcando lo mismo
Sub workbook_open()
Hoja2.Visible = xlSheetHidden
Hoja2.Application.EnableEvents = True
Hoja3.Visible = xlSheetHidden
Hoja3.Application.EnableEvents = True
Hoja4.Visible = xlSheetHidden
Hoja4.Application.EnableEvents = True
Hoja5.Visible = xlSheetHidden
Hoja5.Application.EnableEvents = True
Hoja6.Visible = xlSheetHidden
Hoja6.Application.EnableEvents = True
Hoja7.Visible = xlSheetHidden
Hoja7.Application.EnableEvents = True
End Sub
dicho codigo lo coloque en thisworkbook para que se ejecutara al momento de abrirlo. De antemano muchisimas gracias.
Otra forma que puedes probar es:
Private Sub Workbook_Open()
Sheets(“Hoja2”).Visible = False
Sheets(“Hoja3”).Visible = False
Sheets(“Hoja4”).Visible = False
End Sub
Saludos !!
Muchas gracias por tu respuesta Sergio, fijate que si me oculta la hoja, el detalle es que al momento de ejecutar la macro, ya no funciona el useform, me da error en el metodo select.
El código que me mandaste es sólo para ocultar. Me podrías pasar el código donde te genera error, por favor.
Hola Sergio, estoy necesitando algo parecido a esto pero no puedo encontrarle la vuelta.
Tengo una planilla con cuatro listas de precio. Lo que yo quiero es que cuando el usuario abra el archivo, solo se muestre un formulario con 4 botones, para poder elegir la lista a consultar. Lo que hará cada botón es mostrar la hoja y, obviamente ocultar el formulario inicial.
Luego, al cerrar el archivo, necesito que las hojas vuelvan a ocultarse, de forma tal que, al volver a abrir, se repita el proceso.
He logrado hacer que el formulario se abra al iniciar y que se muestren las hojas al clickear, pero no logro cerrar el mismo (probé con Unload) ni ocultar las hojas al salir.
Por favor, si no he sido claro, mandaría un ejemplo.
Te agradezco la mano que me puedas dar.
Saludos, Germán.-
German:
Para cerrar el formulario utiliza
Unload me
Y para ocultar las hojas al salir, debes añadir el siguiente código en el módulo ThisWorkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Saved Then
‘código para ocultar hojas
End If
End Sub
Sos un capo Sergio, ahora se cierra el form al seleccionar.
Lo que no me funciona es para ocultar las hojas al salir, ¿es posible que falte el código después del “Then” en lo que me escribiste arriba?
Te agradezco muchísimo.
Así es, falta que ingreses el código después del Then. Puedes utilizado algo así:
Sheets(“Hoja1”).Visible = False
Espectacular Sergio, mil gracias de nuevo.
Una sola cosa más, me acabo de dar cuenta. Necesitaría que las hojas se oculten tanto si guardo como si no guardo los cambios al cerrar. Con el código que me has proporcionado, sólo se ocultan si no guardo los cambios. ¿Será posible? Gracias.
Ojo, si no guardas los cambios estás aceptando que nada de lo que hiciste quieres conservarlo.
Lo que te sugiero es que ocultes las hojas al inicio, antes de mostrar el formulario. Con eso aseguras que siempre estén ocultas y sólo las muetras con el formulario.
Ok Sergio, voy a intentar hacerlo por mi mismo con los códigos que me fuiste pasando, alterando el orden de las acciones, si no lo logro te volveré a molestar. Saludos.
Hola Sergio, con el objeto de ocultar al inicio, he modificado la macro en el módulo thisWorkbook tal como la transcribo debajo, pero me marca un error de compilación al abrir, por favor te pido si puedes decirme que estoy haciendo mal:
Private Sub Workbook_Open(Cancel As Boolean)
If ThisWorkbook.Saved Then
Sheets(“RULEMANES”).Visible = False
Sheets(“SKF”).Visible = False
Sheets(“AMORTIGUADORES”).Visible = False
Sheets(“RETENES”).Visible = False
End If
UserForm1.Show
End Sub
Saludos,
El evento Open no tiene parámetros entre paréntesis. Se usa diferente al Before_Close
Usa la macro así:
Private Sub Workbook_Open()
Sheets(“RULEMANES”).Visible = False
Sheets(“SKF”).Visible = False
Sheets(“AMORTIGUADORES”).Visible = False
Sheets(“RETENES”).Visible = False
UserForm1.Show
End Sub
Eliminé la validación de si el archivo estaba guardado, ya que al inicio es obvio que tiene las últimas modificaciones cuando se cerró la última vez.
Ok, solucionado, un millón de gracias, el blog es excelente.
POR FAVOR NO PUEDO DESCARGAR EL ARCHIVO AL PARECER YA SE BORRO DE TU SERVIDOR, ENVÍAMELO A MI CORREO TE LO VOY A AGRADECER MUCHÍSIMO.
Descarga la versión más reciente desde este artículo por favor: http://www.exceleinfo.com/descarga-exceleinfo-add-in-recomendado/