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