Código "Activar libro y hoja dependiendo de dato en textbox" no carga libro y hoja cuando se ejecuta abriendo libro.

Para Dante Amor.

Agradezco por el gran aporte desinteresado, la siguiente macro funciona perfectamente cuando:

1. Al abrir el libro donde se encuentra el código se "guardar como" no importando el nombre que se le asigne al nuevo archivo o con el mismo nombre.

2. Al abrir el libro que contiene el código, también hay que abrir los demás libros que son 10.

Pero si abro el libro que contiene el código y ejecuto el código sin realizar uno de los pasos anteriores sale el siguiente error "El libro "1" no existe", en este caso trate de activar la "Hoja1" del "Libro 1".

Agradezco por vuestra respuesta; adjunto el código:

Private Sub CommandButton1_Click()
'Por.Dante Amor
If Not IsNumeric(TextBox1) Then MsgErr = "Letras no permitidas"
If TextBox1 = "" Then MsgErr = "Escribe un número de hoja"
If Val(TextBox1) > 500 Then MsgErr = "Número de hoja inválido"
If MsgErr <> "" Then
MsgBox MsgErr, vbExclamation, "AVISO"
TextBox1.SetFocus
Exit Sub
End If
'
Select Case Val(TextBox1)
Case 1 To 50: n = 1
Case 51 To 100: n = 2
Case 101 To 150: n = 3
Case 151 To 200: n = 4
Case 201 To 250: n = 5
Case 251 To 300: n = 6
Case 301 To 350: n = 7
Case 351 To 400: n = 8
Case 401 To 450: n = 9
Case 451 To 500: n = 10
End Select
'
On Error Resume Next
ChDir ThisWorkbook.Path
Set l2 = Workbooks("libro " & n)
If Err.Number <> 0 Then
Err.Number = 0
Set l2 = Workbooks.Open("libro " & n & ".xlsx")
If Err.Number <> 0 Then
MsgBox "El libro " & n & " no existe", vbCritical, "AVISO"
TextBox1.SetFocus
Exit Sub
End If
End If
On Error GoTo 0
'
For Each h In l2.Sheets
If h.Name = "Hoja" & Val(TextBox1) Then
existe = True
Exit For
End If
Next
'
If existe Then
l2.Activate
Sheets("Hoja" & Val(TextBox1)).Select
'Unload Me
Else
MsgBox "La hoja " & TextBox1 & " no existe", vbCritical, "AVISO"
TextBox1.SetFocus
l2.Close False
Exit Sub
End If
End Sub

Añade tu respuesta

Haz clic para o