Macro para ocultar todas las hojas al abrir un libro excepto la primera.

Me podrían ayudar nuevamente con otra pregunta, tengo esta macro que me oculta todas las hojas al abrir el libro excepto la primera hoja, aclaro que en la hoja que me deja visible tengo un botón que me ejecuta un formulario de impresión de las hojas que quiero ocultar, pero el problema que se presenta es que al ejecutar el botón de impresión me marca con color amarillo unas líneas del código del formulario y no imprime. Mi idea es que si se pudiera modificar la macro para que cuando yo quiera imprimir me haga visible las hojas ocultas y pueda imprimirlas y después que termine la impresión me las oculte de nuevo. O podría haber otra forma de hacerlo.?

Esta es la macro que me oculta las hojas al abrir el libro

Private Sub Workbook_Open()
On Error Resume Next
NroHojas = ActiveWorkbook.Sheets.Count
For N = 2 To NroHojas
Sheets(N).Visible = False
Next

End Sub

Y Anexo el código completo que tengo en el formulario y lo que me sombrea de amarillo.

Private Sub CommandButton1_Click()
'Por.Dante Amor
'validaciones
If TextBox3 = "" Or Not IsNumeric(TextBox3) Then
MsgBox "Captura el número de copias"
TextBox3.SetFocus
Exit Sub
End If
If OptionButton2 Then
If TextBox1 = "" Or Not IsNumeric(TextBox1) Then
MsgBox "Captura el número desde"
TextBox1.SetFocus
Exit Sub
End If
If TextBox2 = "" Or Not IsNumeric(TextBox2) Then
MsgBox "Captura el número hasta"
TextBox2.SetFocus
Exit Sub
End If
If TextBox1 > TextBox2 Then
MsgBox "El número desde debe ser menor"
TextBox1.SetFocus
Exit Sub
End If
End If
'
'Rango de Hojas a imprimir
If OptionButton1 Then
desde = 1
hasta = Sheets.Count
Else
desde = Val(TextBox1)
hasta = Val(TextBox2)
End If
'
N = 0
If CheckBox1 Then
Sheets("Pag").PrintOut copies:=Val(TextBox3)
N = N + 1
End If
For i = desde To hasta
Hoja = "Pag " & i
For Each h In Sheets
If UCase(h.Name) = UCase(Hoja) Then
imprime = True
If CheckBox2 Then
If h.Range("C8") = "" Then imprime = False
End If
If imprime Then
h.PrintOut copies:=Val(TextBox3)  

' La linea del código que esta en negrita es la que me sombrea de amarillo
N = N + 1
End If
End If

Next

Next
'
MsgBox "Se enviaron a imprimir: " & N & " hojas.", vbInformation, "Impresión realizada"
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
TextBox3 = 1
OptionButton1 = True
CheckBox2 = True
End Sub
'
Private Sub CommandButton2_Click()
Unload Me
End Sub

Respuesta
1

Para imprimir

Hazlo así

Hoja1.visible = la opción que dice visible

Aquí el macro de imprimir 

Hoja1.visible = la opción que hidde

Saludo no olvide valorar si te silve para cerrar la pregunta

Gracias por responder Aneudys pero me podrias explicar con mas detalle  porque no entendi lo que  quieres que haga. segun entendi que debo escribir esto Hoja1.visible = la opción que dice visible antes de la macro y esto al final Hoja1.visible = la opción que hidde

Disculpa que no fui más preciso pero era desde mi cel que estaba respondiendo

Te voy a dar mi rutina de como lo hago para tu pregunta

Así oculto las hojas en el libro en el evento open del thisworkbook una por uno para luego visuliasar la que quiero

Private Sub Workbook_Open()
Hoja1.Visible = xlSheetVeryHidden
Hoja2.Visible = xlSheetVeryHidden

......las demas hojas que tengas
End Sub

Luego cuando quiero que se visualicen solo lo hago así el la macro o botón que se necesite

sub ver_hoja()

Hoja1.Visible =xlSheetVisible

end sub

Saludos no olvides valorar si te silve y si tiene más dudas siguie preguntando

Gracias por tu pronta respuesta. Si me funciono correctamente la macro Aneudys, si yo utilizara nada más el libro no tendría problemas que quedara así, el asunto es que voy a compartir el libro con otro compañero de trabajo y pues el no tiene conocimientos básicos de excel y se le haría complicado que yo le dijera que tiene que irse a la ficha programador y de ahí seleccionar macros y desproteger las hojas para poder imprimir. Ya que el archivo tiene un botón asignada a la macro de impresión pero por ejemplo si quiero imprimir directamente estando oculta las hojas me manda un error en el código que menciono más arriba. No se si me explique bien o te puedo mandar el archivo para que lo cheques y hagas pruebas de que no permite imprimir estando oculta las hojas.

Atentamente.

Luis Enrique

Ok

Este es mi correo [email protected]

Y le doy un vistazo

ya te acabo de enviar el archivo  Aneudys checalo y espero tus comentarios. gracias

Hermano revisa ahora aver que tal

Que tal Aneudys,

Primeramente muchas gracias por la ayuda, me funciono perfecto la macro, nada más tengo unas dudas.

¿Por qué después de mandar la impresión no se cierra el formulario automáticamente?

¿Si yo quisiera hacerle una modificación a las hojas ocultas, tendría que usar otra macro para mostrar las hojas o tendría que modificar el código que hace que oculte las hojas?

¿Qué función tiene la Macro1 y MIRO?

No te preocupes, yo también a veces los fines de semana me desconecto.

Espero tus respuestas.

Atentamente.

Luis Enrique

Lo de miro y macro1 lo puedes borrar

Para lo de visualicar todas las hojas usa una macro buen en macro1 borra el contenido y copia esto

sub macro1 ()

Hoja4.Visible = xlSheetVisible
Hoja5.Visible = xlSheetVisible
Hoja6.Visible = xlSheetVisible
Hoja7.Visible = xlSheetVisible
Hoja8.Visible = xlSheetVisible
Hoja9.Visible = xlSheetVisible
Hoja10.Visible = xlSheetVisible
Hoja11.Visible = xlSheetVisible
Hoja12.Visible = xlSheetVisible
Hoja13.Visible = xlSheetVisible
Hoja14.Visible = xlSheetVisible
Hoja15.Visible = xlSheetVisible
Hoja16.Visible = xlSheetVisible
Hoja17.Visible = xlSheetVisible
Hoja18.Visible = xlSheetVisible
Hoja19.Visible = xlSheetVisible
Hoja20.Visible = xlSheetVisible
Hoja21.Visible = xlSheetVisible
Hoja22.Visible = xlSheetVisible
Hoja23.Visible = xlSheetVisible
Hoja24.Visible = xlSheetVisible
Hoja25.Visible = xlSheetVisible
Hoja26.Visible = xlSheetVisible

end sub

Saludos no olvides valor para cerrar la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas