Excel - ayuda con macro e hipervinculos

 
Vista:
sin imagen de perfil

ayuda con macro e hipervinculos

Publicado por Andrés (2 intervenciones) el 19/06/2017 23:16:40
Estimados: desde hace mucho tiempo que conozco esta WEB, sin embargo nunca me había registrado.... en fin, mi consulta es la siguiente.

Tengo archivo Excel para el control de documentos y una macro que automáticamente genera hipervínculos a unos archivos, cuyo nombre son números correlativos. Estos archivos pueden estar “saltados”. VER IMAGEN 1.JPG

1

Por otra parte, si el archivo 3.PDF no existe, en la planilla excel se anota como “Nulo”. VER IMAGEN 2.JPG

2

En la planilla, cada registro debe tener un hipervínculo al archivo correspondiente, a excepción claro, del n° 3 de las imagenes del ejemplo. Aquí viene mi problema: Así cómo está la macro, “no le importa” si un archivo está o no, simplemente genera el hipervínculo, por lo que al pinchar el hipervínculo del documento 3 aparece el mensaje “no se puede abrir el archivo especificado”, lo que puede inducir a error de interpretación (que el vínculo esta malo, y que el archivo 3.PDF si está almacenado).

Mi consulta es: Si el archivo no existe, se pude hacer un mensaje más personalizado, por ejemplo “archivo nulo” o “documentación anulada”, etc. Lo que sea…
Adjunto el código de la macro:
1
2
3
4
5
6
For i = 2 To 5 ' estas son las filas de Excel. SE salta la primera celda por la cabeceza
        Cells(i, 1).Select ‘CELDA DONDE IRÁ EL HIPERVINCULO
        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="RUTA UBICACIÓN DEL ARCHIVO" _
       & (Cells(i, 1)) & ".pdf"
 Next
(Cells(i, 1)) ES EL CONTENIDO DE LA CELDA, QUE EN ESTE CASO ES EL VALOR DEL CORRELATIVO

espero se haya entendido. desde ya muchas gracias.-

PD: porqué se hace esto por macro? los archivos se almacenan de 100, es decir algo así:

\\SERVIDOR\ARCHIVOS DEL 1 AL 100\
\\SERVIDOR\ARCHIVOS DEL 101 AL 200\

y así sucesivamente.

los hipervinculos se generan al cerrar cada carpeta de 100 archivos ya que solo ahi se sabe cuáles documentos estan nulos y cuales no (los archivos .PDF nulos, simplemente se borran y se registra en la planilla el motivo. las imagenes son como ejemplo nada mas)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

ayuda con macro e hipervinculos

Publicado por Antoni Masana (2477 intervenciones) el 20/06/2017 10:27:48
Si el archivo no existe poe en texto NULO en caso contrario el Hipervinculo.

Este ejemplo busca los archivos del 1.pdf al 5.pdf y lo pone a partir de la fila 2

1
2
3
4
5
6
7
8
9
10
11
12
' --- estas son las filas de Excel. 
'     SE salta la primera celda por la cabeceza
 
For i = 1 To 5
    if Dir((Cells(i, 1)) & ".pdf")="" Then
       Cells(i+1,1)="NULO"
    else
       Cells(i+1, 1).Select ‘CELDA DONDE IRÁ EL HIPERVINCULO
       ActiveSheet.Hyperlinks.Add Anchor:=Selection, _
                                  Address:="RUTA UBICACIÓN DEL ARCHIVO" & (Cells(i, 1)) & ".pdf"
    end if
Next

No hay fichero no hay Hipervinculo.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

ayuda con macro e hipervinculos

Publicado por Andrés (2 intervenciones) el 20/06/2017 15:57:38
grande Antoni Masana!!!!

con una pequeña modificación a tu codigo ha funcionado perfecto!

muchisimas gracias!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 58
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

ayuda con macro e hipervinculos

Publicado por Blas (36 intervenciones) el 06/08/2021 02:22:52
Antoni,, un groso..
Leyendo este post hice este pequeño codigo

Mis Datos (imagen1)
Imagen1

para un viejo listado donde tenia en una columna el nombre y en la siguiente el enlace, genere una columna que muestre el nombre y le agregue el hipervinculo.
Luego corri la macro y una vez obtenidos los vinculos con sus nombrecitos, elimine las columnas A,B,C,D
y me quedo un listin lindo

Si a alguien le sirve, dejo el codigo
que escribi en la seccion General de la Hoja o creando un modulo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub generarhipervinculo()
 
'hago dos entradas, una para fila y una para columna
 
T = InputBox("ingrese el N° de la fila inicial")
col = InputBox("ingrese la letra de la columna de inicio")
 
'Mi listado no es tan largo
For fila = T To 35
 
'para posicionarse en el primer dato
ActiveSheet.Range(col & T).Select
 
'evalua si la celda no esta vacia.
' Si esta vacia va a FIN para pasar a la siguiente linea
If ActiveSheet.Range(col & fila).Value = "" Then GoTo fin
 
'Hace un Offset y se corre 3 columnas a la derecha
'para agregar el hipervinculo
ActiveSheet.Range(col & fila).Offset(0, 3).Select
 
'inicia la creacion de hipervinculos
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="https://" & Range(col & fila).Offset(0, 1).Value, SubAddress:="Ir a " & Range(col & fila).Value, TextToDisplay:=Range(col & fila).Value
 
 
 
fin:
Next
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar