Cargar imágenes desde rutas relativas

Tengo una carpeta llamada "Catálogo" que contiene un archivo de excel y otra carpeta llamada "Fotos".

El archivo de excel tiene un control de imagen que me carga las fotos en función del valor que tenga la celda A2.

Mi problema está que si la carpeta "Catálogo" la quiero usar en otro PC, al variarme la ruta debo entrar en la macro y cambiar esta. ¿Seria posible establecer uan ruta relativa a la subcarpeta "Fotos" independientemente de donde la use?

1 Respuesta

Respuesta
1

Si se puede, suponiendo que tienes una carpeta y abajo de esa carpeta tienes "Catalogo" y "Fotos", por ejemplo:

C:\Documents and Settings\ruta\Mis documentos\Catalogo

C:\Documents and Settings\ruta\Mis documentos\Fotos

Si como comentas, el archivo con la macro está en Catalogo, entonces la ruta puede ser así:

ruta_catalogo = ThisWorkbook.Path

Y para la ruta de fotos, podrías ser así

ruta_foto = Left(ruta_catalogo, InStrRev(ruta_catalogo, "\")) & "Fotos"

Con esto no importa dónde estén las carpetas "Catalogo" y "Fotos", siempre y cuando se encuentren bajo la misma carpeta.

Otro ejemplo:

C:\Documents and Settings\DAM\Mis documentos\docs\varios\Catalogo

C:\Documents and Settings\DAM\Mis documentos\docs\varios\Fotos

Saludos. Dam
Si es lo que necesitas.

¿Hola? no me deja escribir

Perdón por doblepostear, parece que ya funciona.

Esta es la macro que uso actualmente:


¿Que cambios debería hacer exactamente?

Muchas gracias.

Debería quedar así

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
ruta_catalogo = ThisWorkbook.Path
ruta_foto = ruta_catalogo & "\Fotos\"
If Hoja1.Range("A2") <> "" Then
    Image1.Picture = LoadPicture(ruta_foto & Hoja1.Range("A2") & ".gif")
Else
    Image1.Picture = LoadPicture(ruta_foto & "---.gif")
End If
End Sub

El archivo con la macro deberá estar en una ruta que se llame catálogo, en tu ejemplo debería estar aquí

C:\Users\Fernando\Desktop\Catálogo

Y tus fotos deberán estar aquí

C:\Users\Fernando\Desktop\Catálogo\Fotos

Con los cambios en la macro, deberás poner siempre tu archivo con la macro aquí

C:\..........todas las carpetas que quieras...\Catálogo

Y las fotos aquí

C:\..........todas las carpetas que quieras...\Catálogo\Fotos

Si tienes dudas avísame

Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas