Ruta archivo: variable - usando Dir()

Para Dante Amor.

Estimado Dante,

Tengo este código que loopea por archivos dentro de una carpeta. En el código hay referencia a la ruta (path) al archivo, pero es predefinido y me gustaría que fuera variable, por si muevo el archivo de lugar.

ruta = "G:\FID\PORTAFOLIO MODELO\Portafolios\test\"

Estaba pensando en utilizar lo siguiente:

ruta = thisworkbook.path

Pero me da error, creo que es porque la ruta nunca me da un "\" al final que es necesario para DIR.

El Código completo:

Sub CopiarCeldas()
'Por.Dante Amor
reloj = Timer
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("NAV")
    ruta = "G:\FID\PORTAFOLIO MODELO\Portafolios\test\"
    arch = Dir(ruta & "*.xlsx")     
    Do While arch <> ""
        Set l2 = Workbooks.Open(ruta & arch)
        Set h2 = l2.Sheets(1)
        h1.Range("B4:G4").Copy
        u = h2.Range("B" & Rows.Count).End(xlUp).Row + 1
        h2.Range("B" & u).PasteSpecial xlValues
        l2.Close True
        Debug.Print arch
        arch = Dir()
    Loop
    MsgBox "Celdas copiadas en " & Timer - reloj & " segundos"
End Sub

1 Respuesta

Respuesta
2

Cambia esto:

ruta = "G:\FID\PORTAFOLIO MODELO\Portafolios\test\"

Por esto:

ruta = thisworkbook.path & "\"

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Hola dante, funcionó de maravilla.

Ahora, hay algo que no entiendo, yo había buscado una solución "similar", que muestro abajo, y no funcionó.

ruta = ThisWorkbook.Path   
arch = Dir(ruta & "\" & "*.xlsx")

Puse el  & "\" adentro de DIR , sabes porqué no funciona así?

GRACIAS

& "\"

Cuando abres el archivo, también tienes que poner la diagonal:

Set l2 = Workbooks.Open(ruta & arch)

así:

Set l2 = Workbooks.Open(ruta & "\" & arch)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas