Como traer hipervínculos de muchas carpetas al tiempo.

Es que según la macro que me enviaste puedo hacer ya el proceso de traer los hipervínculos ahora quisiera ver, si cabe la posibilidad de que esto mismo de traer los hipervínculos, se pueda hacer, pero ahora trayendo hipervínculos de varias carpetas diferentes o tengo que generar una macro para cada carpeta.

Sub indicepdf()
Dim NombreArchivo As String
Dim NombreCarpeta As String
Dim NombreCompleto As String
Dim f As Long
NombreCarpeta = "c:\xxxxxxxxxxxxx" ' aqui el nombre del directorio donde tienes los pdf
f = 1 ' Especifica celda donde apareceran links
c = "A" 'Especifica en la columna que apareceran links
ChDir NombreCarpeta
NombreArchivo = Dir("*.pdf") ' cambiar para otras extensiones
Do While NombreArchivo <> ""
NombreCompleto = NombreCarpeta & "\" & NombreArchivo
Cells(f, c) = NombreCompleto
ActiveSheet.Hyperlinks.Add Anchor:=Cells(f, c), Address:=NombreCompleto
f = f + 1
NombreArchivo = Dir
Loop
End Sub

1 respuesta

Respuesta
3

Escribe en esta línea las carpetas que desees

    carpetas = Array("C:\trabajo\docs", "C:\trabajo\pdfs")

La macro actualizada

Sub indicepdf()
    Dim NombreArchivo As String
    Dim NombreCompleto As String
    Dim f As Long
    carpetas = Array("C:\trabajo\docs", "C:\trabajo\pdfs")
    f = 1 ' Especifica celda donde apareceran links
    c = "A" 'Especifica en la columna que apareceran links
    For i = LBound(carpetas) To UBound(carpetas)
        NombreArchivo = Dir(carpetas(i) & "\" & "*.pdf") ' cambiar para otras extensiones
        Do While NombreArchivo <> ""
            NombreCompleto = carpetas(i) & "\" & NombreArchivo
            Cells(f, c) = NombreCompleto
            ActiveSheet.Hyperlinks.Add Anchor:=Cells(f, c), Address:=NombreCompleto
            f = f + 1
            NombreArchivo = Dir()
        Loop
    Next
    MsgBox "Fin"
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 

¡Gracias! 

Disculpa, es que en el directorio donde se encuentra las carpetas: 

(C:\trabajo\docs) esto es igual lo único que cambia es después del siguiente slash pero aun así es enumerado.
 

y la pregunta como tal es si en la macro no se puede evitar colocar todo el nombre del directorio, si no solo colocar la parte que cambia ,que como te indico es cada sub-carpeta enumerada. 

Esta es tu petición:

Pero ahora trayendo hipervínculos de varias carpetas diferentes

En la línea tienes que poner las carpetas:

carpetas = Array("carpeta1", "carpeta2", "carpeta3", "carpeta etc")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas