Excel, Ruta a partir de distintas celdas.

Adjunto una imagen donde explico mi consulta. En resumen, conseguir escribir una ruta a partir de distintas celdas variables y partes fijas, ya sea para borrar un archivo, abrirlo, etc.

2 respuestas

Respuesta
1

Una forma:

Dim Ruta As String
Let Ruta = [A2] & ":\" & [A3] & "\" & [A4] & "\" & [A5] & ".xlsx"

OJO, eso funcionará siempre y cuando la "ruta" final exista. Sugiero usara, también, algún control de errores.

¡Gracias! 

Perfecto, estaba escribiendo prácticamente lo mismo pero la nomenclatura me fallaba, empiezo ahora con esto de las macros y se me escapan cosillas de esas. Muchas Gracias!! 

Me sirve perfectamente para aplicarlo a mis futuras macros.

Respuesta
1

Te anexo un ejemplo para validar el archivo, el éxito de una programa depende en medida de las validaciones que pongas, de lo contrario podrás tener varios errores y no saber en dónde tienes el problema.

Sub MarcroConsulta()
'
    r2 = Range("A2")
    r3 = Range("A3")
    r4 = Range("A4")
    r5 = Range("A5")
    '
    If r2 = "" Then
        MsgBox "Falta el disco"
        Exit Sub
    End If
    If r3 = "" Then
        MsgBox "Falta la carpeta"
        Exit Sub
    End If
    If r4 = "" Then
        MsgBox "Falta la subcarpeta"
        Exit Sub
    End If
    If r5 = "" Then
        MsgBox "Falta el nombre del archivo"
        Exit Sub
    End If
    If Right(r2, 2) <> ":\" Then r2 = r2 & ":\"
    If Right(r3, 1) <> "\" Then r3 = r3 & "\"
    If Right(r4, 1) <> "\" Then r4 = r4 & "\"
    If Right(r5, 4) <> ".xlsx" Then r5 = r5 & ".xlsx"
    ruta = r2 & r3 & r4
    If Dir(ruta, vbDirectory) = "" Then
        MsgBox "No existe la carpeta"
        Exit Sub
    End If
    If Dir(ruta & r5) = "" Then
        MsgBox "No existe el archivo"
        Exit Sub
    End If
    Kill ruta & r5
    MsgBox "Archivo eliminado"
End Sub


.

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

.

Avísame cualquier duda

.

¡Gracias! 

Gracias Dante, en el caso particular que estoy haciendo ahora no lo utilizaré, pero me quedo con la forma de aplicarlo porque en futuras seguramente me vendrá bien ir con este cuidado.

La pregunta no admite más respuestas

Más respuestas relacionadas