Macro para abrir un libro de Excel desde otro Libro

En mención a la pregunta lo normal sera esto:

Sub AbrirLibro()

Workbooks.Open "ruta del archivo"

End Sub

Pero si la ruta es cambiante; no es una ruta fija como pude dictarle donde estará y desde ahí que comienza abrirlo teniendo la nueva ruta.

Nota:

Este archivo estará con clava para que no puedan tocar la programación.

Respuesta
1

Paso 1:

Se ha creado una hoja en el mismo libro llamada "Ruta", donde se guardaran las nuevas rutas quedando de esta manera. Donde la columna b1 será donde se guardará o reemplazará la ruta nueva.

Paso 2:

Crear un formulario donde permita ingresar y guardar la nueva ruta. De esta manera. Se ha utilizado un textbox. El cual sera nuestro medio para ingresar la información.

Paso 3:

Ingresamos dentro del botón guardar y colocas este código, las 03(tres) filas resaltas en negrita hacen todo lo mencionado haciendo que se reemplaza la información que ya no se dese.

Private Sub CommandButton1_Click()
'BOTÓN GUARDAR
On Error GoTo x
Cells(1, 2) = TextBox1.Text
Sheets("Ruta").Select
MsgBox ("Nueva ruta guardada")
On Error GoTo 0
Exit Sub
x: MsgBox ("Falla")
End Sub

EL parámetro On Error GoTo x

Hace que controle eventos que pudieran ocasionar un error

Paso 4:

Una vez que se ejecute deberá de quedar de esta manera.

Haciendo que se reemplaza la información anterior.

Y así podemos hacer para las rutas cambiantes, de esta manera lo echo y lo pudo hacer que cualquier botón o acción que yo desee lo habrá.

Posteriormente he creado en un módulo para separar. esta sub rutina

Private Sub almacena()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
Dim Ruta As String
Dim Est As String
Sheets("Ruta").Visible = True
Sheets("Ruta").Select
Est = Range("B1").Value
Ruta = Est
Sheets("Ruta").Visible = False
Sheets("Formulario").Select
Workbooks.Open (Ruta)
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False
End Sub

La cual hago que almacena recupera la nueva ruta .

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas