lunes, febrero 01, 2010

Hipervínculos en Excel - cambiar ubicación

Excel permite crear hipervínculos en celdas tanto a páginas Web como a archivos. Como ya hemos visto, Excel nos proporciona dos caminos:



  • con el menú Insertar-Hipervínculo en Excel Clásico o Hipervínculo en la pestaña Insertar de Excel 2007 (o con el atajo de teclado Ctrl+Alt+K en ambas versiones de Excel o con el menú contextual)



Este último método tiene la ventaja de permitirnos crear ubicación del vínculo, es decir el texto con la ruta del archivo, en forma dinámica.

Con dinámica nos referimos a que en lugar de un texto fijo, ponemos una referencia a una celda que contiene el texto. De esta manera, podemos cambiar el texto en la celda y la referencia cambiará automáticamente.

Esta técnica puede ser muy útil en ciertas situaciones. Por ejemplo, si tenemos hipervínculos a varios archivos en una carpeta y por algún motivo debemos moverlos a otra carpeta. Los hipervínculos creados con el menú no son dinámicos y al mover los archivos dejarán de funcionar. En estos casos la solución será usar macros, que mostraremos más adelante.



En este ejemplo podemos ver que la ruta del archivo se crea combinando el valor de B1 con el nombre del archivo





De esta manera, si movemos el archivo a otra carpeta todo lo que tenemos que hacer es cambiar el valor de la celda B1.

Pero la vida, como siempre, nos enfrenta a situaciones más complicadas. Como el caso de uno de mis lectores que fue creando hipervínculos a archivos guardados en una carpeta y verse necesitado a moverlos a otra carpeta. Como los hipervínculos no fueron creados con la función, sólo tenemos dos alternativas: o cambiar cada vínculo manualmente o usar una macro.




Vamos a mostrar una macro sencilla para reemplazar la ruta de todos los hipervínculos en una hoja. En esta hoja hemos creado cuatro hipervínculos a archivos en la carpeta “D:\My Documents\temp”.



Si queremos cambiar la ruta a “D:\My Documents\blog” podemos usar esta macro

Sub hipervinc_cambio()

    Dim hpVinc As Hyperlink
    Dim strOldAddress As String, strNewAddres As String
  
    strOldAddress = "D:\My Documents\blog\"
    strNewAddres = "D:\My Documents\algodistinto\"
  
    For Each hpVinc In ActiveSheet.Hyperlinks
        hpVinc.Address = Replace(hpVinc.Address, strOldAddress, strNewAddres)
    Next
  
End Sub


Esta es una macro simplificada a los solos efectos de demostrar cómo cambiar los vínculos programáticamente.
En lugar de poner las rutas en el cuerpo del código podemos ponerlas en celdas de la hoja y modificar el código de acuerdo.
Por ejemplo podemos usar las celdas E1 y E2 para alojar el texto de la ruta




y usar esta rutina

Sub hipervinc_cambio()

    Dim hpVinc As Hyperlink
    Dim strOldAddress As String, strNewAddres As String
  
    strOldAddress = Range("E1")
    strNewAddres = Range("E2")
  
    For Each hpVinc In ActiveSheet.Hyperlinks
        hpVinc.Address = Replace(hpVinc.Address, strOldAddress, strNewAddres)
    Next
  
End Sub


85 comentarios:

  1. Magnifico Truco...... Excelente tu blog como referente de Consulta.

    Felicitaciones

    ResponderBorrar
  2. A mi me mata que cada vez que añado un vínculo me pone en Arial 10 y no uso ese tipo de letra ni tamaño, por lo que debo cambiarlo siempre despues de añadirlo.

    Gracias por tu articulo

    ResponderBorrar
  3. Hola Jorge:

    Muy interesante el uso de la función en lugar de Insertar>Hipervínculo. Nunca había entendido cual podía ser la ventaja de la función y ahora está claro. Me recuerda a la ventaja de la función Transponer frente a Pegado Especial>Transponer en cuanto al caracter dinámico de la función frente a la otra alternativa.

    La macro no me ha funcionado en ninguna de sus 2 versiones en Excel 2003. Estoy casi seguro de haberlo hecho bien. Sólo cambié las carpetas por C:\prueba\ y C:\prueba1\ pero lo demás lo tengo todo igual.

    Gracias y un saludo desde España,
    Sergio

    ResponderBorrar
  4. No hace falta matarse!! En el menú formato, abrimos Estilo, buscamos Hipervínculo en la lista desplegable; luego usamos el botón modificar para cambiar las definiciones. Al apretar Aceptar, todos las celdas con hipervínculos cambian. Al agregar un nuevo hipervínculo el formato será el nuevo.
    Posiblemente esté publicando una nota sobre el tema (y tal vez la amplíe al tema de Estilos, que es poco conocido por el usuario promedio de Excel)

    ResponderBorrar
  5. Tengo un problema que no consigo resolver con la funcion hipervinculo.
    Si pongo un hipervínculo en una celda para que me lleve a otra que está dentro de la misma hoja, me gustaría que la ventana no se quedara arriba y tener que darle a la rueda del ratón para mostrar las celdas que están justo más abajo.
    Es decir, para que me entendáis, lo ideal sería que hiciera algo similar a la instrucción scrollrow en vba pero utilizando sólo la función hipervínculo (sin macros).
    Alguien me ayuda?
    Gracias de antemano.

    ResponderBorrar
  6. No creo que se pueda hacer sin programación.

    ResponderBorrar
  7. Hola Sergio,
    recién hoy vi tu comentario. Como pongo en la nota, la macro es muy elemental y sólo a los efectos del ejemplo. Puedes ponerte en cintacto conmigo por mail privado para ver cuál pueda ser el problema.

    ResponderBorrar
  8. Hola muy bueno tu blog
    yo he usado la funcion hipervinculo para hacer una excel con referencias bibliograficas, pero como lo tengo en una memoria flash cada vez que me conecto en un ordenador distinto se cambia la unidad de origen, asi mismo las direcciones en que me hace el link lo realice con la funcion archivo e indice por lo cual, cada vez que coloco un archivo nuevo en la carpata este se agrega a la referencia y se hace el hipervinculo al link. Pero la pregunta es: existe alguna forma de hacer para que al cambiar de ornenador no tenga que cambiar la letra de la unidad ejemplo E o I o G como en algunos casos?

    ResponderBorrar
  9. El único camino que se me ocurre es definiendo la dirección dinámicamente con un evento.

    ResponderBorrar
  10. Buen día,

    Antes que nada agradezco tus aportaciones.....te comento que no logro que trabaje bien la función para vincularme a otro libro =HIPERVINCULO(M5&"MvtosAfijoDiferdios_Empresa_09.xls,""Mvtos_AFijo")...indicandome q no se puedo abrir el archivo especificado...que me sugieres hacer.
    La ubicacion de libro al que quiero vincularme es esta: C:\Users\Zeta\Documents\ArchivosSoporte\Formatos\Impuestos\PTAN_Empresa_09\[MvtosAfijoDiferidos_Empresa_09.xls]Resumen'!$M$10
    Saludos cordiales....

    ResponderBorrar
  11. Fijate lo que explico en esta nota sobre el uso del símbolo #

    ResponderBorrar
  12. Hola Jorge; hice lo que explicaste de las macros y funcionò correctamente. Te agradezco mucho el aporte. Comentario para los que lean, funciona solo en Excel 2007.
    Saludos

    ResponderBorrar
  13. Genial tu post, me ha ayudado muchísimo! Eres un crack, gracias mil!

    ResponderBorrar
  14. Enhorabuena por el post, nos ha ayudado muchísimo. Eres un crack! Gracias!

    ResponderBorrar
  15. Me funciona la macro pero si yo quiero:

    Cambiar el hipervinculo de:
    C:\ABCD\ABCDE\f.xls
    C:\ABCD\ABCDE\g.xls
    C:\ABCD\ABCDE\i.xls
    etc etc

    por
    C:\ABCDE\f.xls
    C:\ABCDE\g.xls
    C:\ABCDE\i.xls
    etc etc

    como lo hago si son cientos de hipervinculos.

    Saludos

    ResponderBorrar
  16. Con la misma rutina, sòlo que en lugar de reeemplazar el texto de toda la direcciòn del hipervínculo, reemplazamos una parte de ella. Por ejemplo con esta rutina

    Sub hipv_part_cambio()

    Dim hpVinc As Hyperlink
    Dim strOldPart As String, strNewPart As String

    strOldPart = "C:\ABCD\ABCDE\"
    strNewPart = "C:\ABCD\"

    For Each hpVinc In ActiveSheet.Hyperlinks
    hpVinc.Address = Replace(hpVinc.Address, strOldPart, strNewPart)
    Next

    End Sub

    ResponderBorrar
  17. Hola Jorge

    he seguido lo que has descrito para modificar parte de las rutas de los hipervinculos y funciona a la perfección. Aunque me encuentro ante el siguiente problema, tengo una carpeta en C: con el archivo excel y con todos los archivos (fotos) vinculados y cuando paso toda la carpeta a un pen drive, me siguen manteniendo los hipervinculos en C:/ por lo que al insertar el pen en otro ordenador no me abre ningún hipervínculo. ¿Qué puedo hacer para que pueda abrir el archivo excel desde el pen y me funcione en cualquier ordenador?

    Muchas gracias por adelantado

    ResponderBorrar
  18. Hola Jorge, gracias por contestar tan rápido, he leído la nota y me aclaro un poco, aunque mi duda sería que sí tengo ya un archivo hecho con los hipervínculos absolutos (es decir, si lo paso a un pen no me abre los hipervínculos) ¿como los paso a relativos para que al cambiar la ubicación de la carpeta (ej: grabarla en cd o pen), me abra los hipervínculos?

    gracias

    ResponderBorrar
  19. Hola Jorge

    he leído la nota y funciona a la perfección. Pero mi problema o lo que quiero evitar es abrir un libro nuevo y tener que introducir los 600 hipervínculos de nuevo, ya que podría copiar y pegar las celdas de la hoja o la hoja entera sin los hipervínculos e introducirlos uno a uno. ¿No habrá otra forma?. he probado también a abrir un libro nuevo y antes de guardarlo hacer un copia/pega de las celdas con los hipervínculos e incluso a pasar la hoja entera, pero no me funcionan...¿me puedes indicar algo?

    mil gracias

    ResponderBorrar
  20. Sergio,
    intenta mover la hoja al nuevo cuaderno en lugar de copiarla.

    ResponderBorrar
  21. Hola Jorge

    perdona que haya tardado en contestar,pero me ha sido imposible hacerlo antes, he probado a moverla a un libro nuevo y crear un hipervíncunlo incluso antes de guardarlo, pero los antigüos no los modifica. Al final me he armado de paciencia y y cree un libro nuevo, hice el hipervínculo antes de guardarlo y después copié la hoja y modifique los hipervínculos...tardé un poquillo pero con paciencia todo sale, no obstante si averiguamos como modificarlos todos de golpe y hacerlos "relativos" estaría bien ponerlo por si acaso a alguien le pasa.

    Muchas gracias por todo y hasta pronto

    ResponderBorrar
  22. no se muy bien como utilizar la macro lo que yo he tengo que cambiar no es la direcion de la carpeta donde tengo los vinculos, lo que tengo que modificar es la direcion donde tengo el libro de excel.

    un saludo y gracias por todo.

    ResponderBorrar
  23. ¿La dirección del cuaderno que contiene los hipervínculos?

    ResponderBorrar
  24. Hola Jorge:
    Antes que nada, soy un lector asiduo de tu Blog y resulta ser de lo mejor en el medio. Respecto de la aplicación de la macro, la utilicé para un cambio parcial de las direcciones y funcionó, hasta mostrar la ruta de los vínculos cambiada. sin enbargo al tratar de ejecutar el nuevo vínculo, este entrega un mensaje en el que dice "que no puede abrir el archivo"

    las rutas son:
    Vieja C:\Users\hp\Documents\
    Nueva: C:\Users\Owner\Documents\ESGAMO COSTOS\NEOMUNDO3 Documentos\Correspondencia\Mis escaneados\

    ResponderBorrar
  25. Mil disculpas por la demora en publicar el comentario. Bien, no tengo mucho para aportar excepto sugerirte que revises si la ruta es la correcta o si hay algún problema con el archivo (pareciera faltar un "\" entre NEOMUNDO3 y Dcoumentos).

    ResponderBorrar
  26. Donnde encuentro la opcion para formato y alineacion?

    Saludos

    ResponderBorrar
  27. En el menú de formato de celda o usando la opción Estilos.

    ResponderBorrar
  28. Estimado Jorge... Tengo el siguiente problema.

    Necesito vincular una celda con otra hoja del mismo documento. El tema es que el nombre de la hoja será posteriormente modificado y una vez que se modifique el hipervinculo ya no funciona. Como puedo dejar el hipervinculo de forma dinámica de tal manera que al renombrar el valor de la hoja vinculada siga funcionando?

    muchas gracias por tu tiempo y respuesta

    ResponderBorrar
  29. La solución más sencilla es unsar nombres definidos. Digamos que el hipervínculo es a la celda A1 de la hoja "Pepe". Creamos un nombre que se refiere a la celda A1 de la hoja Pepe. Al crear el hipervínculo en la otra hoja, usamos "Lugar de este doumento"--"Nombres definidos". En la lista aparecerá el nombre que acabmos de crear.
    Esta referencia se mantiene también cuando cambiamos el nombre de la hoja (la definición del nombre refleja automáticamente el cambio).

    ResponderBorrar
  30. Me funciono a la perfeccion...muchas gracias

    ResponderBorrar
  31. Estimado muy bueno el ejemplo, pero tengo un problema, con respecto a la referencia abosulta o referencial.

    uso oficce 2007, con windows xp

    el problema es que recoleto los hipervinculo en un for y los tiro a un .txt

    pero quisiera obtener la referencia abosulta y no referencial..

    y bueno la funcion Address me la entrega refencial..

    Alguna forma de solucionarlo ?????????'

    ResponderBorrar
  32. Lucas,
    si te refieres a la función DIRECCION (ADDRESS) de Excel, su tercer argumento te permite definir el tipo de referencia a crear.

    ResponderBorrar
  33. Disculpa igual no me explique bien, hise una pequeña macro en excel que recolecta los hipervinculos de un excel que selecciono y los envia a un txt.

    La adjunto por si a alguien le sirve;


    Sub hipervinculos()


    libro = Application.GetOpenFilename

    If libro = False Then Exit Sub
    Dim h As Hyperlink
    Workbooks.Open Filename:=libro
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set A = fs.CreateTextFile("C:\Prueba.txt", True)
    For Each libro In ThisWorkbook.Sheets
    For Each h In ActiveSheet.UsedRange.Hyperlinks
    A.WriteLine h.Address

    Next

    Next

    End Sub

    Bueno lo que pasa es lo siguente al decirle

    A.WriteLine h.Address

    el guarda el hipervinculo de excel, en el archivo de texto prueba que cree, el problema es que me encontre con la problematica de que, mediante una opcion excel maneja los hipervinculos de manera absoluta o referencial, asi que me encuentro con el problema de que algunos archivos tienen la referencia absoluta, y algunos referenciales.

    La pregunta es la funcio ADDRESS , devuelve la refeencia absoluta??? pork si excel lo maneja debe estar la referencia completa en algun lugar..

    ResponderBorrar
  34. Lucas,
    en la línea "A.WriteLine h.Address" Address no es la función ADDRESS() de Excel sino una propiedad de Hyperlink. Es decir, muestra como está definido el hipervínculo.

    ResponderBorrar
  35. amm entiendo... entiendo gracias por tu ayuda, finalmente me quedo con la referencia referenciales, de igual manera me sirven.

    A todo esto finalmente descrubri que excel posee la opción de manejar los links de los hipervinculos de diferente manera al crear el excel, por defecto 2007 en adelante lo hace de manera referencial, una vez creado los link ya nose puede hacer nada.

    En mi caso no es malo, de igual manera logre actualizar los links con un codigo que los reemplaza.

    Gracias por tu tiempo.

    ResponderBorrar
  36. hola Jorge.
    Preciso que me saques una duda respecxto al uso del hyperlink.follow, y este blog es el que mas se aproxima. Preciso saber como cerrar una ventana que abri con hyperlink.follow desde vba.
    saludos, y gracias.

    ResponderBorrar
  37. Hola José, pasé por alto tu comentario! Mis disculpas. No tengo una respuesta precisa, por lo que te sugiero que consultes en los foros de Vba. En principio me parece que no tienes forma de hacerlo si usas Hyperlink.Follow.
    Si abres la ventana con CreateObject luego pordrías cerrarla con Quit.

    ResponderBorrar
  38. HOLA QUÉ FUNCIÓN O MÉTODO PUEDO UTILIZAR EN EXCEL PARA HACER LO SIGUIENTE: AL DIGITAR EN UNA CELDA, EL NOMBRE DE OTRA HOJA INMEDIATAMENTE SE DIRECCIONE HACIA ELLA...., CÓMO LO HAGO, ALGUIEN ME PUEDE AYUDAR?????????????????

    ResponderBorrar
  39. Hola Jorge, gracias por la explicación, pero tendrás que perdonarme porque no estoy muy puesto en este tema, y necesito saber cómo puedo solucionar un pequeño problema con el llevo algún tiempo buscando la forma de corregir solucionarlo.

    Tengo una hoja de Excel en una carpeta que tiene mas o nenos esta estructura:
    C:\carpeta 1 \ carpeta 2\ carpeta 3\ carpeta 4
    Dentro esta la hoja de Excel y un archivo pdf

    En una celda en puesto un texto y un hipervínculo Ctrl+Alt+K y en el apartado Dirección le pongo la ruta al archivo pdf para que al pulsar sobre el texto nos muestre el pdf.

    Todo funcionan bien, pero el problema llega cuando copio esas carpetas junto con los archivos a otra partición, o un lápiz usb, como los archivos ya no se encuentran en C: y no puede abrirlos.

    Se puede solucionar esto problema de alguna forma?

    P.D. el mensaje anterior lo puse como anonimo y no marque la opcion de notificarme, como no se si ya no respondes a nuevas peticiones marco esa opcion para no estar entrando todos los dias a ver si alguien responde algo.


    Gracias anticipadas, y Felices Fiestas.

    ResponderBorrar
  40. Bien, la macro que publico en esta nota te ayudará a solucionar el problema.

    ResponderBorrar
  41. Cómo hago para que los hipervínculos cuando pongo ordenar celas, también se muevan, ya que los hipervínculos no se mueven y me direccionan al mismo vínculo que había antes en esa celda,

    ResponderBorrar
  42. Por defecto la referencia del hipervínculo es un texto, por eso no se reordenan. Puedes usar la función HIPERVINCULO. Por ejemplo, si el vinculo debe referirse siempre a una rango en la columna A, y el valor buscado es, por ejemplo, 1 (que al ordenar puede ocupar el primer lugar o el último en el rango), está fórmula muestra en la celda con el hipervpinculo el texto "Valor 1" y siempre llevara a la celda en la columna A donde el valor 1 se encuentre

    =HIPERVINCULO("#A$"&COINCIDIR("Valor 1";$A$1:$A$11;0);"Valor 1")

    ResponderBorrar
  43. woW MUCHAS GRACIAS CON LA INFORMACION, TENIA MI ARCHIVO QUE AL ORDENAR QUITA LOS HIPERVINCULOS PERO CON ESTA MACRO SOLO LA APLICO Y VUELVEN MIS HIPERVINCULOS GRACIAS...

    ResponderBorrar
  44. Que tal, He intentado echar a andar la macro y no hace el cambio de links, no se a que se deba, todas las rutas estan en orden, lo estoy haciendo en Excel 2007, ya quite espacios en los nombres, hice mil pruebas y no consigo hacer que funcione!!!, tengo el libro habilitado para macros... Saludos!

    ResponderBorrar
  45. ¿Puedes poner el código de la macro?

    ResponderBorrar
  46. Pues es exactamente el mismo que esta aqui de ejemplo, solo cambio las rutas de mis hipervínculos, honestamente no se mucho de esto, no se donde este el lio, si solo cambiando las rutas funciona o hay que agregar algo más... saludos!

    ResponderBorrar
  47. Lo más probable es que tengas algún error en el texto de la ruta del hipervínculo.

    ResponderBorrar
  48. hola Jorge, mira estoy capturando una base de datos en exell, cosa que va con hipervinculos la columna b, y cuando lo mando por dropbox o em, no les abren los vinculos, lo guarde en un disco externo y no los abre en otra pc, estoy aterrada por que ya llevo 1800 capturados y son mas de 6 mil y tengo que entregarlos en el disco externo, ahora solo se me ocure que debo hacerlos de nuevo en el disco externo : ( y ay dios que dificil por que ya tuve que volver a vincularlos y esta seria la 3ra vez que los vinculo si decido trabajar en el disco externo.
    un amigo me dijo que los pusiera en C: para que no tuviera problemas a la hora de mverlos de unidad pero no entinedo como eso me ayudaría.

    porfavor ayudame

    ResponderBorrar
  49. Elizabeth, ponte en contacto conmigo por mail privado (fijate en el enlace Ayuda, en la parte superior del blog(.

    ResponderBorrar
  50. Hola Jorge, he estado buscando opciones para poder resolver un problema que tengo con un archivo que combina consultav (office 2010) e hipervinculos. la idea es que yo busco un registro con consultav y quiero que una vez me lo muestre se genere su correspondiente hipervinculo (toda la información se encuentra en el mismo libro, en hojas cuyo nombre es el ID del registro). Ojála puedas ayudarme.

    ResponderBorrar
  51. Hola Joseph, tendrías que combinar CONSULTAV (que mientras tanto ha sido re-rebautizada BUSCARV) con la función HIPERVINCULO. Esta nota puede orientarte.

    ResponderBorrar
  52. buenas,
    tengo una situación.
    Tengo una carpeta mes enero con un archivo que tiene hipervínculo con otro archivo de mes enero. En febrero copio la carpeta de enero, cambio nombre de archivo pero los hipervínculos no se pueden mas abrir, solo con el nombre original.
    Cual seria la solución? con un vinculo normal seria modificar vinculo. gracias!!

    ResponderBorrar
  53. Silvana, el hipervínculo es una cadena de texto que apunta a un archivo, en tucaso, en una carpeta determinada. Esta cadena de texto no es dinámica; no se modifica al cambiar el nombre del archivo. Lo que tenés que hacer es modificar el hipervínculo. En el post hay un a macro para hacerlo, si no querés hacerlo manualmente.

    ResponderBorrar
  54. Buen día, tal vez puedas ayudarme, necesito algo similar pero que cambie el nombre del libro. Tengo un libro "BASE", con varias hojas "Matrícula", "Datos", "Título" Etc. En cada hoja tengo hiprvínculos que me llevan a otra, el tema es que cuando termino de llenar datos(en mi caso de estudiantes) en la hoja "Datos" guardo el libro con una macro que indica la celda donde esta el nombre del estudiante y cierra el libro "BASE". Con lo que por un lado me queda un libro con el nombre del estudiante y el "BASE" para volver a utlizarlo, pero los vínculos del nuevo libro me quedan asociados a "BASE". Necesito, si fuera posible que cuando guardo el libro nuevo los vinculos se asocien al mismo. Lo siento elijo anónimo, no por querer serlo, sino por ignorancia. Mi nombre es Gustavo, estoy haciendo este proyecto para una escuela cooperativa del la localidad de Moreno, Buenos Aires. Gracias.

    ResponderBorrar
  55. Hola Gustavo,
    se puede hacer pero me parece que el método que estás usando para manejar los datos de los estudiantes es un tanto engorroso. Te sugiero que sigamos la conversación por mail privado (fijate en el enlace Ayuda, en la parte superior del blog).

    ResponderBorrar
  56. Hola, sabes te cuento .. tengo una planilla excel con 3200 hipervinculos a documentos escaneados de los cuales ahora no se abre ninguno, no se que hacer, y todos me dicen que la unica opcion es hacer uno a uno nuevamente pero son muchos, porfis me puedes ayudar., no se hacer ni macros ni seguir rutas, asi que tendria que ayudarme de cero.

    ResponderBorrar
  57. Hola, si bien no señalás la causa del problema supongo que sedebe al cambio de ubicación de los archivos. Para cambiar la ruta podés usar el código de macro que aparece en la nota. Te sugiero que pidas a alguien de tu entorno de trabajo o de tus amigos que tengan conocimientos de Excel que te ayuden a aplicar la macro.

    ResponderBorrar
  58. Hola,

    Tengo un problema con un Excel,

    Tengo varios hipervinculos con acceso a varias carpetas y varios PDF alojados en un servidor, Hemos cambiado el servidor y ahora la ruta no funciona, Ejmp:

    antigua ruta: \\srvfbstg\Carpeta1\Carpeta2\Carpeta3\documento.pdf

    Nueva Ruta: \\srvfbstgV\Carpeta1\Carpeta2\Carpeta3\documento.pdf

    Solo quiero cambiar en todos los hipervinculos la parte de \\srvfbstg\ -> \\srvfbstgv\

    Probe una macro que comentabas, donde la modifique de la siguiente manera:

    Sub hipv_part_cambio()

    Dim hpVinc As Hyperlink
    Dim strOldPart As String, strNewPart As String

    strOldPart = "\\srvfbstg\"
    strNewPart = "\srvfbstgv\"

    For Each hpVinc In ActiveSheet.Hyperlinks
    hpVinc.Address = Replace(hpVinc.Address, strOldPart, strNewPart)
    Next

    End Sub

    Pero me marca como mal la linea:

    hpVinc.Address = Replace(hpVinc.Address, strOldPart, strNewPart)

    Que puedo hacer mal, o como se podría soluciona?


    Gracias

    ResponderBorrar
  59. Me parece que te falta un \ en strNewPart = "\srvfbstgv\"

    ResponderBorrar
  60. Saludos, El error "las directivas de su organizacion nos impiden terminar esta accion por usted..." referente a hipervinculos a googlemaps en excel...como han solucionado ese error, hay que modificar el registro o reinstalar el office? gracias

    ResponderBorrar
  61. Juna Manuel, más que un error es una cuestión de definiciones de la red de tu empresa. Tendrías que consultar con la gente del departamento de información de tu empresa.

    ResponderBorrar
  62. como te va? queria consultarte lo siguiente, tengo el caso de dos libros excel que estan en una carpeta y por darte un ejemplo sencillo, la celda A1 del libro 1 depende del valor A1 del libro 2, hasta ahi todo bien. Mi problema surge cuando saco de la carpeta al libro 2, puesto que la formula no reconoce el vinculo anterior. Como puedo solucionar ello?

    ResponderBorrar
  63. Hola Alejandro, tal como está explicado en el post.

    ResponderBorrar
  64. Disculpa, una duda con las macros, ¿sólo se ejecuta la macro para una celda a la vez? es decir, tengo muchos hipervínculos que quiero modificar y selecciono todas las celdas y no funciona.
    Incluso con una celda a la vez, tengo que ejecutar la macro una o dos veces para que se haga el cambio.

    Muchas gracias!!

    ResponderBorrar
  65. La macro se aplica a todos los hipervínculos de la hoja activa, como puede verse en el código. Es decir, modificará todos los hipervínculos de todas las celdas que los contengan.

    ResponderBorrar
  66. Buenas noches Dunkelman ,tengo un problema con una hoja vinculada a varios archivos. Mi archivo consta de 5 carpetas; la primera carpeta con el nombre de Abril dentro de la cual hay 30 archivos con la misma estructura, otra carpeta con el nombre Mayo y 31 archivos ,otra carpeta con el nombre junio y 30 archivos; otra carpeta con el nombre julio y 31 carpetas y finalmente otra carpeta con el nombre consolidado y dentro de este un archivo consolidado final que agrupa la información de todos las carpetas anteriores.La ruta que aparece en el consolidado final es : 'C:\Users\Pedro\escritorio\CONSOLIDADOS I TEMPORADA\ABRIL\[DIA 1.xlsx]1'!C278.
    El problema surge cuando lo guardo en otra PC sigue apareciendo la misma ruta y si algo algun cambio en las otras carpetas los cambios no se presentan en el consolidado final.
    Espero puedas ayudarme ya que tengo varios días buscando una solución y no la encuentro.
    Agradeceré tu apoyo

    Gracias.

    ResponderBorrar
  67. No me queda claro si est[as usando hipervínculos o cómo estás conectando los archivos. De todas maneras, supongo que estás usando un archivo para cada día de cada mes, que a su vez guardas en un carpeta por mes.
    Este diseño es muy problemático paa toda operción de consolidación de datos, por lo que te sugiero que uses un único archivo con una única hoja para todos los datos. Tendrías que tener un campo (columna) para el mes, otro para el día y los restantes para los demás datos. De esa manera podrías crear reportes y consolidar datos con facilidad usando tablas dinámicas ahorrándote todos los dolores de cabeza de usar archivos separados para cada mes o día.

    ResponderBorrar
  68. Buenos días.

    Estoy utilizando la macro para cambiar solo parte de la ruta, pero me marca error de memoria insuficiente, uso office 2013.
    gracias

    ResponderBorrar
  69. No se me ocurre que pueda estar causando el error (excepto que no hay suficiente memoria disponible, obviamente). Te sugiero consultar en los foros de Excel.

    ResponderBorrar
  70. Hola Jorge, buen día. Tengo una hoja de excel con hipervinculos de documentos pdf, con lo que genere un expediente muy completo, debo enviarlos a otra persona, no se como hacer para que la estructura siga funcionando adecuadamente y me permite el acceso a todos los documentos vinculados. Mil gracias de antemano..ah y conozco un poquito de excel pero no de programación

    ResponderBorrar
  71. Para que la otra persona pueda abrir los archivos PDF éstos tienen que estar guardados en algun aubicación a la cual ese usuario tenga acceso.
    Una posibilidad sería en algún servicio cloud (nube) como OneDriver.

    ResponderBorrar
  72. Esta es buenísimo.
    Pero, como en lugar que la celda muestre la rutan del hipervinculo, mejor se vea un nombre, o el nombre del archivo ?

    ResponderBorrar
  73. Lo que aparece en la celda es el texto que se puso en la celda.

    ResponderBorrar
  74. Buenas tardes, tengo una consulta urgente: Se podra solucionar lo sgte: Tenia un archivo excel con hipervinculos de diversos archivos ya que guardo resultados de analisis; sin embargo se movio la carpeta y se daño todo.
    Queria saber si tiene solucion alguna para q todos se cambien o debe ser unicamente uno por uno? (son mas de 1000 archivos)

    Ayuda por favor. Gracias

    ResponderBorrar
  75. Usa la macro publicada en este post.

    ResponderBorrar
  76. Me pasa que cambio el nombre de la hoja de Excel donde tengo dirigido un hipervínculo y lo pierdo, debo volver a linkearlo... es posible crear los hipervínculos a una hoja no importando el nombre que le dé a esa hoja?
    muchas gracias

    ResponderBorrar
  77. Bien, es lo que explico en la nota (usando la funcion HIPERVINCULO).

    ResponderBorrar
  78. Hola, ¿cómo puedo hacer que los vínculos de objetos Excel que tengo en PowerPoint sean dinámicos para cuando cambio de carpeta los documentos plantilla me guarde la nueva ruta de acceso?

    ResponderBorrar
    Respuestas
    1. Seguramente programando con Vba de PP. Te sugiero que preguntes en alguno de los muchos foros de PowerPoint.

      Borrar
  79. Hola, tengo un problema.
    Cuando creo hipervínculos en un Excel y después copio ese archivo a otra PC el vínculo se rompe y no me abre. La.opción de Actualizar dirección no me satisface pq es un documento para circular. Existe alguna forma de fijar los hipervínculos para q abran desde cualquier PC?

    ResponderBorrar
    Respuestas
    1. No. los hipervínculos son cadenas de texto que no cambian.

      Borrar

Nota: sólo los miembros de este blog pueden publicar comentarios.