Ocultar Excel al ejecutar macro sin afectar otros libros abiertos

He intentado varias opciones para ocultar el Excel al ejecutar mi formulario pero con ningún código puedo lograr que no me afecte los demás libros que hay abiertos. Ya llevo bastante tiempo con esto y no puedo lograr que funcione.

He intentado con este código el cual Si funciona pero me oculta todo

Private Sub Workbook_Open()
Application.Visible = False
UserForm2.Show
End Sub

y si utilizo este otro me manda error 

Private Sub Workbook_Open()
Application.Windows("Nombre de libro").Visible = False
UserForm2.Show
End Sub

No se si me explico espero me puedan apoyar ya que no tengo mucha experiencia en macros.

Respuesta
1

Te anexo la macro

Private Sub Workbook_Open()
    Application.Windows(ThisWorkbook.Name).Visible = False
    ThisWorkbook.Activate
    UserForm2.Show
End Sub

.

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

.

Avísame cualquier duda

.

Lo intente pero me manda error en el userform1 (tengo un botón de búsqueda y al ejecutarlo me arroja error. ¿ que hice mal?

¿El userform1 está en el mismo libro que ocultaste?

Antes de llamar el userform1 también escribe:

 ThisWorkbook. Activate
    UserForm1.Show

Prueba y me comentas

tengo tres userform en el mismo archivo, todo me funciona bien hasta que pongo la macro para abrir automáticamente el userform2, a partir de ahí me manda errores en las macros que se suponía ya estaban correctas anteriormente, ¿Hay forma de que puedas echarle un vistazo a mi archivo y me digas en que estoy mal? te lo agradecería mucho

Pero ya no entiendo, ¿tienes error en le userform1 o en el 2?

¿Qué error te envía?


Tienes que activar el libro antes de seleccionar cada hoja.

Como tu libro1 no está activo, es decir, tienes activo otro libro2, al momento de seleccionar una hoja del libro1 como no está activo el libro1 te envía error, ya que seguramente en el libro2 no existe la hoja.

Tienes que cambiar la forma en que programas.

Tu programación no está diseñada para ocultar el libro, por lo tanto, si quieres ocultar el libro tienes que ajustar el código, por ejemplo:

Tienes esto:

Sheets("Hoja4").select

Cambia por esto:

 ThisWorkbook. Activate
    ThisWorkbook. Sheets("Hoja4"). Activate

Así tienes que corregir todo tu código.

O no selecciones la hoja. No es necesario seleccionar la hoja.

Te actualizo tu código sin seleccionar la hoja:

Private Sub CommandButton1_Click()
'Act.Por.Dante Amor
    Set l1 = ThisWorkbook           'establezco mi libro
    Set h1 = l1.Sheets("Hoja4")     'establezco en h1 la hoja4
    For i = 2 To h1.Cells(Rows.Count, 1).End(xlUp).Row
        If h1.Cells(i, 1) = código.Text Then
            buscar = True
            nombre = h1.Cells(i, 2)
            apellidos = h1.Cells(i, 3)
            dni = h1.Cells(i, 4)
            Exit For
        End If
    Next
    If buscar = False Then
        MsgBox "No existe número de empleado"
    End If
End Sub

Observa que en mi código no selecciono la hoja, solamente hago referencia al objeto de la hoja, en este caso establecí en la variable objeto h1 la "hoja4" y cada vez que hago referencia a la hoja solamente pongo h1.


Ahora ya tienes 2 opciones para ocultar tu libro.

.

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

.

Avísame cualquier duda

.

E s timado, tienes pendiente valorar esta respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas