¿Cómo llenar forms utilizando datos de hojas ocultas?

Espero que estes genial.

Tengo un problema con la macro que me ayudaste a crear para ocultar todas las hojas del WorkBook, excepto una, para este fin la macro funciona bien. Pero ahora al ejecutar diferentes forms me marcan error de ejecución ya que la hoja a la que hace referencia la macro para obtener los datos no corresponde con la hoja que se encuentra visible en ese momento.

Otro ejemplo de error, es que cuando lleno un listbox con datos de la hoja que esta visible ejemplo "clientes" y le doy click en botón para imprimir los datos, la macro me marca error, ya que la hoja a donde envía los datos para imprimir se llama "temp" y no esta visible.

Lo que deseo es seguir manteniendo ocultas las hojas y solo mostrar la que se necesite en el momento que ejecute cualquier form con su respectiva macro, por ejemplo:

Si ejecuto el form "clientes" que haga visible solo la hoja "clientes" y si posteriormente ejecuto el form "catalógo" que oculte la hoja "clientes" y que muestre la hoja "catalógo" y así sucesivamente.

¿Maestro, sería usted tan amable en ayudarme a corregir estos inconveniente?

Respuesta
1

Para poder hacer cambios en una hoja oculta o poder extraer datos debes hacerla visible se hace con esta instrucción

ThisWorkbook.Sheets("tu hoja").Visible = xlSheetVisible

la siguiente es para que seleccione esa hoja
    ThisWorkbook.Sheets("tu hoja").Select

Y esta ultima es por si tienes password tu hoja
    ThisWorkbook. Sheets("tu hoja"). Unprotect ("tu password")

Cuando terminas de hacer los cambios proteges tu hoja una vez más y la ocultas así...

ThisWorkbook.Sheets("tu hoja").Select
    ThisWorkbook.Sheets("tu hoja").Protect ("tu password")
    ThisWorkbook.Sheets("tu hoja").Visible = xlSheetVeryHidden

Disculpa la demora, hoy fue un día muy agotador ya que desde muy temprano he andado muy presionado con la escuela y el trabajo, y hasta ahorita tuve la oportunidad de poner en práctica tus consejos y  funciona excelente, el problema esta resuelto.

Te agradezco muchísimo la atención y la ayuda prestada.

¡Saludos y mil gracias!

1 respuesta más de otro experto

Respuesta
1

Para mantener las hojas ocultas, tienes que hacer referencia a la hoja oculta.

Tendrás que revisar y corregir tus macros.

Por ejemplo en el formulario "Altas" tienes esto:

Set h1 = Sheets("OBRAS")

Como la hoja "OBRAS" está oculta, entonces te marca error.

Más abajo tienes esto:

    i = Range("A" & Rows.Count).End(xlUp).Row + 1
    'se agregan los nuevos datos
    Range("A" & i).Value = TextBox1
    Range("B" & i).Value = TextBox2

Lo que tienes que hacer es esto, por ejemplo:

Borrar esta instrucción

Sheets("OBRAS").Select

Y pon esto:

Set h1 = Sheets("OBRAS")

Con lo anterior estás estableciendo en la variable h1 el objeto "OBRAS".

Y más abajo pon esto:

    i = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
    'se agregan los nuevos datos
    h1.Range("A" & i).Value = TextBox1
    H1.Range("B" & i).Value = TextBox2

Eso significa que en donde vayas a utilizar la hoja "OBRAS" solamente tienes que poner h1.

Tienes que hacer lo mismo en todos tus formularios en todas tus macros.

Disculpe la demora, pero hasta ahorita tuve la oportunidad de llevar a la práctica sus concejos y  el problema esta resuelto.

¡Muchísimas gracias! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas