Hipervínculos en Excel - cambiar ubicación

lunes, febrero 01, 2010

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


75 comments:

Juancho 01 febrero, 2010 23:58  

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

Felicitaciones

Miguel @tallerseo 02 febrero, 2010 10:35  

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

Anónimo,  02 febrero, 2010 11:46  

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

Jorge L. Dunkelman 02 febrero, 2010 12:26  

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)

Isaac,  04 febrero, 2010 13:56  

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.

Jorge L. Dunkelman 04 febrero, 2010 18:17  

No creo que se pueda hacer sin programación.

Jorge L. Dunkelman 04 febrero, 2010 23:42  

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.

Anónimo,  16 febrero, 2010 22:12  

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?

Jorge L. Dunkelman 17 febrero, 2010 12:11  

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

Anónimo,  17 febrero, 2010 21:28  

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....

Jorge L. Dunkelman 18 febrero, 2010 07:14  

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

Anónimo,  17 marzo, 2010 16:57  

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

Anónimo,  07 abril, 2010 12:37  

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

Anónimo,  07 abril, 2010 12:48  

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

Sebastian 28 octubre, 2010 15:45  

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

Jorge L. Dunkelman 28 octubre, 2010 18:08  

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

Sergio,  02 noviembre, 2010 01:56  

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

Jorge L. Dunkelman 02 noviembre, 2010 12:15  

Fijate si lo que pongo en esta nota te resulta útil.

Sergio,  03 noviembre, 2010 01:30  

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

Jorge L. Dunkelman 03 noviembre, 2010 18:46  

Sergio,

fijate si esta nota te aclara el tema.

Sergio,  08 noviembre, 2010 00:15  

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

Jorge L. Dunkelman 11 noviembre, 2010 17:50  

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

Sergio,  02 diciembre, 2010 02:31  

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

Anónimo,  30 octubre, 2011 00:40  

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.

Jorge L. Dunkelman 30 octubre, 2011 14:54  

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

DROCHAR 05 mayo, 2012 18:14  

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\

Jorge L. Dunkelman 11 mayo, 2012 15:59  

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).

Anónimo,  17 mayo, 2012 18:27  

Donnde encuentro la opcion para formato y alineacion?

Saludos

Jorge L. Dunkelman 19 mayo, 2012 11:49  

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

Cambio Climático; Movimientos Sociales... 20 agosto, 2012 23:17  

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

Jorge L. Dunkelman 21 agosto, 2012 12:17  

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).

SONNY HURTADO 18 octubre, 2012 15:48  

Me funciono a la perfeccion...muchas gracias

Lucas Torres 10 enero, 2013 15:19  

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 ?????????'

Jorge L. Dunkelman 11 enero, 2013 17:46  

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

Lucas Torres 11 enero, 2013 20:40  

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..

Jorge L. Dunkelman 12 enero, 2013 09:59  

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.

Lucas Torres 17 enero, 2013 15:04  

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.

Jose Riu,  05 marzo, 2013 20:24  

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.

Jorge L. Dunkelman 25 marzo, 2013 07:07  

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.

HARDANY CEDEÑO 29 agosto, 2013 00:42  

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?????????????????

SoCu 28 diciembre, 2013 09: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.

Jorge Dunkelman 02 enero, 2014 17:13  

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

juan casia boza 06 enero, 2014 22:55  

Muy buen aporte. Gracias.

Anónimo,  29 enero, 2014 05:13  

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,

Jorge Dunkelman 29 enero, 2014 20:13  

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")

copa 24 febrero, 2014 19:47  

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...

Anónimo,  23 mayo, 2014 21:16  

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!

Jorge Dunkelman 25 mayo, 2014 18:20  

¿Puedes poner el código de la macro?

Anónimo,  26 mayo, 2014 17:43  

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!

Jorge Dunkelman 28 mayo, 2014 08:44  

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

Elizabeth Cruz 02 noviembre, 2014 21:38  

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

Jorge Dunkelman 03 noviembre, 2014 07:03  

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

Joseph Barrios 02 febrero, 2015 16:15  

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.

Jorge Dunkelman 02 febrero, 2015 16:52  

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

Silvana Pascuali 23 abril, 2015 16:23  

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!!

Jorge Dunkelman 24 abril, 2015 09:38  

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.

Anónimo,  24 mayo, 2015 19:26  

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.

Jorge Dunkelman 29 mayo, 2015 09:40  

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).

Anónimo,  23 julio, 2015 23:38  

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.

Jorge Dunkelman 24 julio, 2015 11:28  

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.

Alberto 09 octubre, 2015 14:29  

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

Jorge Dunkelman 17 octubre, 2015 22:54  

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

Juan Manuel Mendivil 24 noviembre, 2015 23:38  

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

Jorge Dunkelman 25 noviembre, 2015 07:19  

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.

Alejandro Iturre 12 febrero, 2016 13:34  

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?

Jorge Dunkelman 16 febrero, 2016 18:44  

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

Unknown 14 mayo, 2016 02:50  

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!!

Jorge Dunkelman 14 mayo, 2016 11:32  

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.

Unknown 03 junio, 2016 07:05  

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.

Jorge Dunkelman 05 junio, 2016 10:24  

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.

goca live 29 junio, 2017 19:43  

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

Jorge Dunkelman 29 junio, 2017 20:54  

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.

david quintero 02 agosto, 2017 17:18  

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

Jorge Dunkelman 02 agosto, 2017 17:39  

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.

Publicar un comentario

Google+ Followers

Seguidores

Google+ Badge

Términos Legales

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP