CREAR HIPERVINCULO CON MENSAJE DE ERROR PERSONALIZADO

19/05/2007 - 19:03 por KAR | Informe spam
Necesito crear un hipervínculo de tal forma que cuando intente abrir
el archivo al que haga referencia, si este no existe, muestre un
mensaje de error personalizado, distinto al de "NO SE PUEDE ABRIR EL
ARCHIVO ESPECIFICADO".

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
20/05/2007 - 02:10 | Informe spam
hola, !

Necesito crear un hipervinculo de tal forma que cuando intente abrir el archivo al que haga referencia
si este no existe, muestre un mensaje de error personalizado, distinto al de
"NO SE PUEDE ABRIR EL ARCHIVO ESPECIFICADO".



1) a partir de excel 2000 existe un evento en los modulos de hoja y libro para 'detectar' si se ha pulsado un hipervinculo

2) [hasta donde se] los hipervincuos tienen *precedencia* incluso sobre los codigos [y otros eventos] o sea...
el evento 'FollowHyperlink'... NO se ejecuta *antes* de que se haga el *salto* al hipervinculo [es posterior a este]

3) [creo que] necesitarias NO usar hipervinculos *reales*, sino usar texto 'simple' con *formato* parecido a los hipervinculos
-> y utilizar el evento '_selectionchange' para revisar [primero] si el archivo a donde se pretende saltar... *existe*
en caso afirmativo, solo usa una instruccion del tipo 'ActiveWorkbook.FollowHyperlink'
en caso contrario, ya puedes administrar el mensaje con el que prefieras *avisar* que dicho archivo [ya] no *existe* :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 KAR
20/05/2007 - 20:24 | Informe spam
On 20 mayo, 02:10, "Héctor Miguel"
wrote:
hola, !

> Necesito crear un hipervinculo de tal forma que cuando intente abrir el archivo al que haga referencia
> si este no existe, muestre un mensaje de error personalizado, distinto al de
> "NO SE PUEDE ABRIR EL ARCHIVO ESPECIFICADO".

1) a partir de excel 2000 existe un evento en los modulos de hoja y libro para 'detectar' si se ha pulsado un hipervinculo

2) [hasta donde se] los hipervincuos tienen *precedencia* incluso sobre los codigos [y otros eventos] o sea...
el evento 'FollowHyperlink'... NO se ejecuta *antes* de que se haga el *salto* al hipervinculo [es posterior a este]

3) [creo que] necesitarias NO usar hipervinculos *reales*, sino usar texto 'simple' con *formato* parecido a los hipervinculos
-> y utilizar el evento '_selectionchange' para revisar [primero] si el archivo a donde se pretende saltar... *existe*
en caso afirmativo, solo usa una instruccion del tipo 'ActiveWorkbook.FollowHyperlink'
en caso contrario, ya puedes administrar el mensaje con el que prefieras *avisar* que dicho archivo [ya] no *existe* :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.



Muchas gracuas Hector pero estoy muy puesta en códigos VB en excel. El
hipervínculo no lo he insertado mendiante la función HIPERVINCULO,
sino a través del icono de la barra de herramientas.

¿podrías ofrecerme algo más de detalle de como insertar el evento
selectionchange y la instrucción Active Workbook?

Perdona mi ignorancia.
Respuesta Responder a este mensaje
#3 Héctor Miguel
21/05/2007 - 04:05 | Informe spam
hola, *karmen* ?

... como insertar el evento selectionchange y la instrucción Active Workbook?



un ejemplo es si suponemos que la ruta\al archivo.XYZ que debiera hacer las veces de un hipervinculo 'verificable'
-> la pones en la celda 'C5' [no es limitativa, sino solo un ejemplo]:

a) aplicas un formato 'similar' a los hipervinculos [p.e. subrayado y fuente en color azul]
b) haces un click-secundario en la etiqueta con el nombre de 'esa' hoja y seleccionas: -> ver codigo
c) copa/pega las siguientes lineas en el modulo de codigo de 'esa' hoja:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$5" Then
If Dir(Target) <> "" Then
ActiveWorkbook.FollowHyperlink Target
Else
MsgBox "El documento especificado en " & Target.Address & vbCr & _
"NO existe, o ha cambiado de ubicacion !!!"
End If
End If
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 KAR
22/05/2007 - 09:35 | Informe spam
Hector, ¿qué tal?...en mi mensaje anterior lo que quería decirte es
que NO estaba muy puesta en código VB, pero con las prisas omití el
"no".

He estado probando el código que me has enviado y va perfecto, primero
lanza el mensaje predeterminado y a continuación el personalizado.

Todo funciona perfecto mientras la página que contiene los
hipervínculos es una hoja excel, pero resulta que como a ella acceden
distintos usuarios de la red, esta hoja la he guardado como página
web, entonces a la hora de picar en un vínculo que no existe, no da
ningún mensaje de error y lo que muestra es una página en Internet
Explorer que dice "No se puede mostrar la página".

¿crees que habría alguna solución?.

Como siempre mil gracias.
Respuesta Responder a este mensaje
#5 Héctor Miguel
22/05/2007 - 18:01 | Informe spam
hola, karmen !

He estado probando el codigo...
... funciona... mientras la pagina que contiene los hipervinculos es una hoja excel
... resulta que... a ella acceden distintos usuarios de la red, esta hoja la he guardado como pagina web
... a la hora de picar en un vínculo que no existe, no da ningun mensaje de error
y lo que muestra es una pagina en Internet Explorer que dice "No se puede mostrar la pagina".
crees que habría alguna solucion?.



si estas tratando de 'correr' las macros desde el explorador de internet...
-> [hasta donde se] las macros no se han perdido...
[simplemente] NO son 'operables' [al menos de manera 'transparente'] fuera del entorno de la aplicacion...
-> la unica forma [que conozco] es 'obligar' al IE a que use una instancia de la aplicacion [excel]
1) abre MiPC [o el explorador de windows]
2) ve a herramientas -> opciones de carpeta...
3) ve al apartado de -> tipos de archivo
4) [de la lista desplegable] -> selecciona la extension .XLS [hoja de calculo de microsoft excel]
5) pulsa al boton de -> opciones avanzadas
6) DESMARCA la opcion de -> explorar en la misma ventana
7) acepta [todos] los cambios y... ¡ listo !!!
[ahora...] el internet explorer 'usara' una [nueva] instancia de la aplicacion [excel]

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida