Porque no se actualizan los datos de excel desde mi programa en VBa

1! Necesito que inicie mi programa en VBa sin que sean visibles las hojas de excel, pero cada que los oculto ocurre un error con el programa

1 respuesta

Respuesta
1

Si la hoja está oculta y escribes algo como esto:

Sheets("Hoja3").select

La macro no puede seleccionar una hoja que está oculta y te envía error.

Para actualizar una hoja oculta (incluso si está visible), tienes que hacer referencia a la hoja, por ejemplo, si tienes algo como esto:

sheets("Hoja3").select
range("A5").select
activecell = "hola"

Puedes poner algo como esto:

Sheets("Hoja3"). Range("A5") = "hola"

De esa forma, estoy haciendo referencia a la hoja y a la celda donde voy a actualizar, entonces, no es necesario seleccionar la hoja.


Si vas a actualizar varias celdas, puedes establecer en un objeto la hoja, por ejemplo:

    Set h = Sheets("hoja3")
    h.Range("A5") = "hola"
    h.Range("A6") = "detalle"
    h.Range("A7") = "adios"

De esa forma estoy utilizando el objeto h en lugar de escribir varias veces Sheets("hoja3")

Hay otras formas, pero es la que más utilizo.


Prueba y me comentas.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias! 

todo lo que tu dices esta muy bien, pero el detalle es que quiero ocultar la hoja que hace todo el trabajo y que solo se vea la aplicación.
entonces cuando la oculto o no esta visible, me marca el error a la hora de ingresar datos 

Private Sub TextBox13_Change()
Range("N84").Value = Trim(TextBox13.Text)
End Sub
Private Sub TextBox17_Change()
Range("Q84").Value = Trim(TextBox17.Text)
End Sub

eal igual que cuando quiero mstrarlos

Private Sub CommandButton1_Click()
TextBox2 = Range("N63").Value
TextBox6 = Range("Q63").Value
TextBox10 = Range("T63").Value
TextBox32 = Range("N68").Value
TextBox37 = Range("Q68").Value
TextBox42 = Range("T68").Value
TextBox3 = Range("Q58").Value
TextBox7 = Range("Q58").Value
TextBox11 = Range("Q58").Value
TextBox33 = Range("Q58").Value
TextBox38 = Range("Q58").Value

es algo asi lo de arriba..

heets("Hoja3"). Range("A5") = "hola"

probé esto pero no me actualiza los datos

¿Qué mensaje de error te envía?

Además de ocultar la hoja. ¿La tienes protegida?

¿Estás ocultando la hoja o estás ocultando la aplicación? ¿Con qué instrucción ocultas?


Te falta indicar el nombre de la hoja:

Private Sub TextBox13_Change()
Range("N84").Value = Trim(TextBox13.Text)
End Sub

Por ejemplo:

Private Sub TextBox13_Change()
sheets("Base de datos").Range("N84").Value = Trim(TextBox13.Text)
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas