Inicio > Microsoft Excel > tavopz > Hipervinculos en excel

Hipervinculos en excel

Experto:
Usuario:
Fecha: 15/05/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
13/05/2008
carlosduarte, usuario preguntando en Microsoft Excel
Usuario
Hola bueno dias, tengo una inquietud como puedo hacer para modificar en masa una buena cantidad de hipervinculos que tengo en un libro lo que necesito es modificar la celda destino por ejemplo si tengo el hipervinculo que al darle click pase a la celda F10 del al hoja 1 que en lugar de F10 sea X21 son como 40 hipervinculos en la hoja se podra hacer alguna macro para esto, consegui esta macro buscando en la web pero no le encuentro como decirle que me modifique solo los rango de la celda espero me comprendas aqui esta la macro. es de otro experto pero creo que no esta activo espero me ayudes saludos.
Sub ChangeAddress()
' Store the old hyperlink so you can get its properties.
'
Set oldlink = Worksheets("cc").Cells(1, 1).Hyperlinks(1)
' Store the old Anchor and SubAddress properties. Note that the
' oldAddress line is optional and that the oldAnchor line must
' be preceded by "Set" since it is using a Range.
'
Set oldAnchor = oldlink.Range
oldAddress = oldlink.Address
oldSubAddress = oldlink.SubAddress
' Create the new link using the new Address and the original
' Anchor and SubAddress.
Set newLink = Worksheets("Sheet1").Hyperlinks.Add( _
Anchor:=oldAnchor, _
Address:=oldAddress, _
SubAddress:=oldSubAddress)
End Sub
14/05/2008
carlosduarte, experto respondiendo en Microsoft Excel
Experto
Hola,
Pienso que no necesitas hacer algo tan complejo para lo que me dices. Tal vez con algo como esto:
Sub Macro_Links()
    Dim c As Range
    For Each c In Range("A1:L100")
        If c.Hyperlinks(1).SubAddress = "Hoja1!F10" Then
              c.Hyperlinks(1).SubAddress = "Hoja1!X21"
        End If

    Next c

End Sub
La macro hace lo siguiente:
1. Evalúa todas las celdas en el rango A1:L100, puedes modificar este rango cambiando la macro en la línea 3 .
2. Si la celda tiene como hipervínculo la celda F10 de la Hoja1 (también puedes cambiar este dato), entonces lo reemplaza por la celda X21 de la misma Hoja1.
 
Espero que esto te sirva. Si tienes alguna inquietud adicional no dudes en pedir aclaración.
 
Saludos, Tavopz
14/05/2008
carlosduarte, usuario preguntando en Microsoft Excel
Usuario
Hey me parece una buena solucion, pero me nace otra pregunta como hago si los hipervinculos estan direccionados a hojas distintas como un menu, por consiguiente son cambiantes entonces me tendria que tomar el valor de la celda activa y reemplazar los datos el nuevo dato como por ejemplo si tengo esto

Hoja1!F10
Hoja2!F10
Hoja3!F10
Hoja4!F10
y quiero esto
Hoja1!X20
Hoja2!X20
Hoja3!X20
Hoja4!X20
Como se puede hacer esto?
saludos y gracias por tu pronta repuesta
14/05/2008
carlosduarte, experto respondiendo en Microsoft Excel
Experto
Hola,
Pienso que podemos manejarlo como un texto. Entonces tendrías que manejarlo así:
 
Sub Macro_Links()
    Dim c As Range
    For Each c In Range("A1:L100")
        x = c.Hyperlinks(1).SubAddress
        y = Right(c, 3)
        z = Left(c, 6)
        If y = "F10" Then
              c.Hyperlinks(1).SubAddress = z & "X20"
        End If
End Sub

 
Revisa si esto es válido entonces.
 
Saludos, Tavopz
 
15/05/2008
carlosduarte, usuario preguntando en Microsoft Excel
Usuario
Gracias por tu pronta y asertada solución esta perfecta, aunque le hise unos cambios para que funcionara pero valio la pena. saludos cuidate aqui te pongo el resultado por si alguien mas lo necesita.
Sub Macro_Links()
Dim c As Range
For Each c In Range("C11:C14")
   X = c.Hyperlinks(1).SubAddress
   y = Right(X, 2)
   z = Left(X, 6)
If y = "F10" Then
  c.Hyperlinks(1).SubAddress = z & "X20"
End If
Next c
End Sub
Enlaces patrocinados