El siguiente comando en VBA nos permite listar todos archivos con los que el presente libro de trabajo tiene un link o vínculo externo. No aplica para hipervínculos de Internet (páginas Web, etc), por el contrario, sólo aplica para nombrar los archivos a los que se hace referencia en alguna celda del libro de trabajo actual, generando una nueva hoja con los nombres de los archivos y su ubicación dentro del computador
Sintaxis: (previamente debe de insertarse un nuevo módulo y colocar los códigos en ese espacio)
La sintaxis para poder realizar el listado es la siguiente:
Sub ListLinks()
Dim aLinks As Variant
aLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
Sheets.Add
For i = 1 To UBound(aLinks)
Cells(i, 1).Value = aLinks(i)
Next i
End If
End Sub
A continuación mostraré un ejemplo donde se puede aplicar el caso mencionado.
Ejemplo:
1) Se buscar generar una ficha resumen de proyecto que contenga 2 tipos de información clave: el cronograma y los resultados económicos - financieros. Para realizar esta ficha resumen se toma como base a 2 archivos distintos: "Cronograma del Proyecto" y "Estudio Económico"
(Para mayor visualización de la imagen, hacer click en la misma)
2) En el archivo "Ficha resumen" que se creará con los datos del cronograma y el estudio económico se les asignará a algunas celdas los valores que tomen en los archivos "Cronograma del proyecto" y "Estudio económico" de modo que en caso se cambie algún valor en los archivos originales, la ficha resumen también cambiará su valor. Como pueden visualizar en el libro "Ficha Resumen" en la celda B5 de la hoja Ficha Cronograma se le asigna el valor de la celda C4 de la Hoja 1 del libro "Cronograma del Proyecto". Así se dio con todas las fecha, duración y etapas del proyecto de la hoja "Ficha Cronograma" y también con los datos de la hoja "Ficha Financiera".
(Para mayor visualización de la imagen, hacer click en la misma)
3) Para tener una fuente bibliográfica de donde es que se obtienen los datos debe de colocarse en el programador VBA el siguiente código:
Sub ListLinks()
Dim aLinks As Variant
aLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
Sheets.Add
For i = 1 To UBound(aLinks)
Cells(i, 1).Value = aLinks(i)
Next i
End If
End Sub
4) Al ejecutar la macro. automáticamente, se creará una nueva hoja con la información de los archivos que se usaron como inputs para obtener la data de este nuevo archivo como puede visualizarse en la siguiente imagen:
(Para mayor visualización de la imagen, hacer click en la misma)
De esta manera, generamos la lista con los links externos (ubicación y nombres de los archivos) que se utilizan para generar este nuevo archivo.
Archivo adjunto con ejemplo para generar lista de links:
Elaborado por: José David Núñez Sánchez
23/05/2017 a las 4:50 pm
buenismo todos, siempre me apoyo con uds mil gracias