Función Hipervinculo, falla un poco.

14/10/2006 - 11:20 por javier | Informe spam
Baloncesto
baloncesto americano http://www.acb.com/
federacon española http://www.feb.es/
Futbol
liga futbol profesional http://www.lfp.es/
historia del futbol http://www.servifutbol.com/
Ciclismo
cicloturismo http://www.ciclistas.org/
actualidad ciclista http://www.esciclismo.com/





Hola amigos:
Recurro a vosotros para ver si consigo alguna solución. Tenía 2 problemas:


PROBLEMA 1:

Tengo una tabla como la de arriba desde la fila 1 a la 9, que ocupa las
columnas "A", "B", y "C". Los espacios que se ven en blanco es texto,
concretamente comillas [=""]. Yo quería conseguir que esas 3 columnas queden
en una sóla columna. Lo estaba intentando mediante una fórmula como ésta que
introducía por ejemplo en "D1":

¡&HIPERVINCULO(C1;B1)

Aparentemente me queda bien, me queda así:

Baloncesto
baloncesto americano
federacon española
Futbol
liga futbol profesional
historia del futbol
Ciclismo
cicloturismo
actualidad ciclista

Lo que sucede es que en dicha columna, en las filas 1, 4, y 7 ("Baloncesto",
"Futbol", y "Ciclismo"), lo reconoce como si fuera un Hipervinculo, por lo
tanto al hacer click en dichas celdas me sale un mensaje diciendome que "la
dirección de éste sitio no es válida. Compruebe la dirección..." Quería
evitar que me salga ese mensaje y/o que me lo reconozca como un Hipervinculo.
Los otros Hipervinculos Sí funcionan bien.


PROBLEMA 2:

El otro problema es que una columna donde existen muchos Hipervinculos
creados mediante una formula como la anterior: ¡&HIPERVINCULO(C1;B1) quería
deshacer la fórmula pero que se mantenga (o que me siga funcionando) el
Hipervinculo. Es decir: si copio y pego sólo valores se pierde el
Hipervinculo.

¿Cómo lo podría solucionar?

Gracias por vuestra ayuda.
Saludos.
javier

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
14/10/2006 - 18:58 | Informe spam
hola, javier !

1) si a la funcion hipervinculo... le estas 'diciendo'...
-> que 'tome' la direccion de su columna 'C' y el texto de su columna 'B'...
-> en los casos donde dichas celdas contienen un 'vacio'...
a) por que consideras que se trata de un 'fallo' de la funcion ?
b) por que pretendes que se 'comporte' como [si se tratara de] un hipervinculo 'real' ?

2) para 'convertir' los hipervinculos por formula a 'objetos' hipervinculo...
-> selecciona -solo- las celdas con hipervinculos por formula
->corre una macro +/- como la siguiente:

en un modulo de codigo 'general ==Sub De_formula_a_vinculo()
Application.ScreenUpdating = False
Dim Celda As Range, Tmp As String
For Each Celda In Selection
With Celda
Tmp = Mid(.Formula, _
InStr(.Formula, "(") + 2, _
InStr(.Formula, ",") - InStr(.Formula, "(") - 3)
.Clear
.Hyperlinks.Add Celda, Tmp
End With
Next
End Sub

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

__ la consulta original __
Mostrar la cita
#2 javier
15/10/2006 - 02:30 | Informe spam
Mostrar la cita
Tienes razón Héctor, pero probé de varias formas y me parecía que ésta
función tiene un comportamiento un poco extraño.

Por ejemplo con ésta fórmula:

=SI(LARGO(A1)=0;HIPERVINCULO(C1;B1);A1)

en las filas 1, 4 y 7 del ejemplo que dejé, no debería contener ningún
Hipervínculo o no debería comportarse como si tuviese un Hipervínculo: sin
embargo al hacer clic aparece un mensaje donde dice que la dirección no es
válida.

Por alguna razón esas celdas las reconoce con un formato de Hipervínculo. Y
no conseguía evitarlo.



2)Convertir una fórmula hipervínculo en objeto hipervínculo.

La macro no ha funcionado bien. Lo que me hace es borrar el contenido de las
celdas
Quizás en ésta línea:
.Clear
habría que poner copiar o pegar…??? No sé.

Gracias Héctor por tu comentario
Saludos.
Javier




"Héctor Miguel" escribió:

Mostrar la cita
#3 Héctor Miguel
15/10/2006 - 04:18 | Informe spam
hola, javier !

__ 1 __
Mostrar la cita
1) el 'detalle' esta en que cuando excel 'siente/encuentra/detecta/...' EL USO de la funcion: -> =hipervinculo(...)
[automaticamente] 'asume/interpreta/pretende/...' que 'quieres ir a...' una direccion de hipervinculo [algo asi como'intellisense'] :))
-> para evitarlo, puedes 'hacer' que un clic en 'esas' celdas no se vaya a ningun lado... con una formula +/- como la siguiente:
=hipervinculo(si(a1="";c1;"#"&direccion(fila();columna()));si(a1="";b1;a1))

__ 2 __
Mostrar la cita
2) tienes razon :D aqui se trata de una suposicion [mia y equivocada] asumiendo argumentos 'directos' en la funcion [p.e.]
=hipervinculo("http://www.acb.com";"baloncesto americano")
-> no 'acuse recibo' de que los argumentos de la funcion son 'tomados' de celdas :-(
-> y aun mas... no contempla la posibilidad de funciones anidadas ni dentro ni fuera de la funcion 'hipervinculo' :-((
-> 'destripar' una formula y averiguar si la funcion hipervinculo se esta usando, y/o si hay funciones/argumentos 'anidados'...
es un proceso que requiere de su 'sistema de coccion aparte' :D

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
#4 javier
15/10/2006 - 12:52 | Informe spam
__ 1 __
Muchas gracias Héctor. La fórmula que me has dejado es excelente. Siempre
hay formas nuevas de resolver algo.


__ 2 __
He probado manualmente y he visto que la columna donde tengo las fórmulas
con los Hipervínculos la puedo copiar en un documento Word [.doc]; y desde
ahí la puedo volver a copiar y pegar en una columna de Excel (funciona bien:
desaparece la fórmula y queda como objeto Hipervínculo). Si me das una idea
de cómo hacer esto con una macro… creo que tendría el problema resuelto.

Muchas gracias.
Saludos.
Javier.



-
"Héctor Miguel" escribió:

Mostrar la cita
#5 Héctor Miguel
15/10/2006 - 22:25 | Informe spam
hola, javier !

Mostrar la cita
asumiendo que estas utilizando la 'nueva' formula propuesta en la columna 'D'...
y que las direcciones 'http://...' se encuentran en la columna 'C' [o una columna a la izquierda]
y los 'capitulos' [cuando no hay direcciones] estan en la columna 'A' [o tres columnas a la izquierda] -?-

prueba con alguna macro +/- como la siguiente [seleccionando un rango de celdas con los 'resultados' de la formula]...

Sub Congelar_hipervinculos()
Application.ScreenUpdating = False
Dim Celda As Range
For Each Celda In Selection
If Celda.Style = "Hyperlink" Then
Celda.Clear
If Celda.Offset(, -3) = "" _
Then Celda.Hyperlinks.Add Celda, Celda.Offset(, -1) _
Else Celda = Celda.Offset(, -3)
End If
Next
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Ads by Google
Search Busqueda sugerida