Va una difícil sobre hipervínculos.

Viene complicada, pero seguramente alguien la saca.
Aclaro que estoy trabajando con excel 2007.
Tengo en una columna una lista de números de cotizaciones, en un directorio tengo archivadas todas esas cotizaciones cuyos nombres de archivo empiezan por el numero de la cotización y luego tienen una descripción.
Lo que necesito es hacerles un hipervínculo a las cotizaciones en el excel de modo de poder abrirlas con facilidad.
Mi idea fue la siguiente pero no pude hacerla realidad.
Importar una lista de los nombres de archivo que hay en ese directorio (cosa que no pude hacer, vi que hay unas fórmulas de excel 4 pero no supe como usarlas), armar una tabla.
Insertar una columna al lado de la lista de números de cotizaciones para hacer los hipervínculos, y buscar en la lista de archivos importada el que empiece con el numero de la celda de al lado y completar la cadena del hipervínculo con ese nombre encontrado.
Si se les ocurre algo mejor o como llevar a cabo mi idea ...
Saludos
{"lat":-34.9169742332207,"lng":-56.1505436897278}

1 Respuesta

Respuesta
1
Si el nro de cotización que tenés en esa lista o col no es exactamente el nombre del libro, no podremos colocar el vínculo allí, sino que necesitarás una rutina que te devuelva la lista de archivos de tu directorio, para luego armar los hipervínculos en esa col.
Colocá la rutina en un módulo y ajustá el nombre del directorio.
Seleccioná la primer celda de la nueva columna y ejecutá la macro.
Sub ListarArchivosCarpeta()
Dim strArchivos As String
Dim strNombreCarpeta As String
'carpeta donde se hará la búsqueda - AJUSTAR
strNombreCarpeta = "C:\Documents and Settings\All Users\Documentos\"
'pasamos al directorio elegido, indicando como tipo de archivo Excel
ChDir strNombreCarpeta
strArchivos = Dir("*.xls")     'busca solo archivos excel
'recorremos los archivos de la carpeta
Do While strArchivos <> ""
'armar una lista en la hoja Excel
'en este ejemplo comenzará a partir de la celda activa
ActiveCell.Value = strArchivos

ActiveCell.Offset(1, 0).Select
'obtiene la siguiente entrada
strArchivos = Dir
Loop
End Sub
Ahora quizás debieras limpiar la lista de aquellos archivos que no corresponden y ordenarla para que te coincida con tu lista de cotizaciones. O directamente podes quedarte con esta nueva col
Cuando la tengas lista avisame que te pasaré la rutina para crear los hipervínculos a toda la col (la tengo en el manual)
La verdad que mil gracias, excelente !
Una última duda, como hago referencia a una carpeta ubicada en un servidor de red, la ruta es esta \\192.186.0.124\cotizaciones, pero cuándo la pongo me sigue usando la ruta anterior, no la toma en cuenta.
Gracias nuevamente
Saludos
Falta la 2da parte. Asignar la ruta a cada item de la nueva lista
Podes pedirme el ejemplo a mi correo (lo encontrarás en mi sitio) si no te queda claro.
Una vez armada la lista de archivos que tendrá el directorio elegido (dejo 1 línea con referencia a ruta en servidor), falta ahora asignarle a cada celda el hipervínculo:
Colocala también en un módulo del Editor.
Sub ModificaHipervinculos()
'macro desarrollada por Elsamatilde
' ajustar la carpeta del vínculo y la col de datos
Dim ruta
Dim largo As Integer
'primer celda del rango con lista de carpets
Range("c2").Select
While ActiveCell.Value <> ""
ruta = "\\Neo\Documentos c\Trabajos\" & ActiveCell
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=ruta, TextToDisplay:=ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Wend
End Sub
En la rutina que te enviara anteriormente, podes buscar en un servidor de red, quedándote algo así:
strNombreCarpeta = "\\Neo\Documentos c\Trabajos\"
Lo ideal es que tengas abierta la carpeta del servidor y copiar la ruta que aparece en la barra de dirección, para no errarle.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas