Macro que busque un archivo y lo abra desde cualquier ruta

Quisiera que me ayudaran con mi problema, resulta que tengo una macro que funciona muy bien en mi ordenador, pero resulta que si intento ejecutarlo en otro ordenador me causa error ya que la ruta del archivo del cual extraigo los datos no es la misma.

Como puedo hacer para que la macro busque el archivo de datos en cualquier ordenador sin necesidad de especificar la ruta de nuevo.

Respuesta
2
Sub abrir_fichero()
Dim Archivo As String
Archivo = Environ("UserProfile") & "\Mis documentos\compra.xlsx"
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(Archivo) Then
 Workbooks.Open Archivo
Else
 MsgBox "no encontrado. Asegurese de que el archivo COMPRA.XLSX está en la carpeta: c:\compra_maestra"
End If
End Sub
Sub abrir_fichero() Dim Archivo As String Archivo = "C:\carpeta_maestra\compra.xlsx" Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(Archivo) Then Workbooks.Open Archivo Else MsgBox "no encontrado. Asegurese de que el archivo COMPRA.XLSX está en la carpeta: c:\compra_maestra" End If End Sub

1 respuesta más de otro experto

Respuesta
2

Te mando mi solución: con esta macro podrás abrir cualquier archivo en cualquier ordenador ya que se abre un browse para que busques tu archivo y una vez localizado le das doble click y lo abre.

Sub prueba()
'por luismondelo
archivo = Application.GetOpenFilename
If archivo = False Then Exit Sub
Workbooks.Open archivo
End Sub

recuerda finalizar la consulta

Saludos.

El problema es que tengo una serie de datos que se comparan con otros datos, al existir una diferencia la macro abre otro archivo y copia el dato desviado, con la macro que Ud. me propone tendría que estar escribiendo la ruta del archivo por cada dato desviado y son como 60 datos, sería algo tedioso. No existe alguna instrucción que me busque el archivo sin importar el ordenador en la que tenga la macro?

De antemano muchas gracias

En cualquier caso, entiendo que tenemos que informar a la macro de donde está el archivo que queremos abrir. Si cambiamos de ordenador tendremos que ubicar los archivos en el mismo sitio. Por lo que cuentas creo que hay varios archivos para abrir por lo que tenemos que tener claras las rutas para hacer distintas aperturas.

Ese es mi problema porque al cambiar de ordenador cada propietario tiene sus nombres específicos para acceder a una misma ruta entonces lo que necesito es que la macro al ejecutarse busque el archivo por ejemplo en la carpeta mis documentos de cualquier ordenador sin tener que estar especificando la ruta cuando se cambia de ordenador será que se puede, gracias.

Es me ocurre esta idea:

Sub abrir_fichero()
Dim Archivo As String
Archivo = "C:\Users\Luis\Downloads\compra.xlsx"
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(Archivo) Then
 Workbooks.Open Archivo
Else
 MsgBox "no encontrado. Asegurese de que el archivo COMPRA.XLSX está en la carpeta: c:\--------"
End If
End Sub

Esta macro evalúa si el archivo compra.xlsx está en la carpeta users\luis\donwnloads.

Si lo encuentra lo abre y si no lo encuentra le lanza un aviso al usuario para que lo ponga en su sitio

Saludos me parece muy bien su código, pero que pasa en caso de que cambie de ordenador y en vez de Luis la persona se llama Juan???? ó en vez de Downloads dice descargas???

Gracias.

Mi macro era un ejemplo, yo haría lo siguiente:

De forma obligatoria el archivo deberá estar en la siguiente dirección:

C:\carpeta_maestra\

Y el archivo se llamará como tu quieras y en mi ejemplo se llama compra.xlsx

Entonces la macro, para todo el mundo, sería así:

Sub abrir_fichero()
Dim Archivo As String
Archivo = "C:\carpeta_maestra\compra.xlsx"
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(Archivo) Then
 Workbooks.Open Archivo
Else
 MsgBox "no encontrado. Asegurese de que el archivo COMPRA.XLSX está en la carpeta: c:\compra_maestra"
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas