Macro para crear múltiples hipervínculos en Excel.

Tengo un documento de Excel que contiene " n " cantidad de filas. En la columna A, a partir de la celda A2, existe una serie de números, (un numero por celda) de menor a mayor y no se repiten entre si. En una unidad drive tengo una carpeta que contiene archivos para autocad ( .dxf ), estos son llamados con los números como en la columna A2. La idea es aplicar el hipervínculo a cada numero de la columna A2 y al dar clic sobre la celda o el numero, la macro busque su similar en la carpeta y abra el documento.

La ruta donde se encuentran estos documentos es la siguiente: H:\projects\41902\nest\parts2do

1 respuesta

Respuesta
1

H o l a : Te anexo un par de opciones. Prueba la macro en los eventos de tu hoja.

Opción 1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    ruta = "H:\projects\41902\nest\parts2do\"
    'ruta = "C:\trabajo\"
    ext = ".dxf"
    'ext = ".pdf"
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        arch = ruta & Target.Value & ext
        If Dir(arch) <> "" Then
            ActiveWorkbook.FollowHyperlink arch
        End If
    End If
End Sub

Opción 2

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    ruta = "H:\projects\41902\nest\parts2do\"               'ruta de los archivos
    'ruta = "C:\trabajo\"
    ext = ".dxf"                                            'extensión de los archivos
    'ext = ".pdf"
    rutaapp = "C:\Program Files\Adobe\Reader 11.0\Reader\"  'ruta de la aplicación
    nomapp = "AcroRd32.exe "                                'nombre applicación
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        arch = ruta & Target.Value & ext
        If Dir(arch) <> "" Then
            Shell rutaapp & nomapp & arch, vbNormalFocus
        End If
    End If
End Sub

En la opción 2, tienes que cambiar la rutaapp y nomapp por la ruta y el nombre del programa que abre los archivos de autocad.

    rutaapp = "C:\Program Files\Adobe\Reader 11.0\Reader\"  'ruta de la aplicación
    nomapp = "AcroRd32.exe "                                'nombre applicación

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Dante, me funciono perfectamente, en ambos casos. Pero tengo otra petición, que me acaban de asignar y te pido una disculpa por ello. ¿Como podría hacerle si el numero del archivo por abrir, va dentro de un conjunto de caracteres?, por ejemplo: A7722-1P-02302_01-151 RA.pdf , que busque el ultimo numero después del guion, en este caso el " 151 ". El detalle es que este numero se puede repetir debido a las revisiones que se le vayan dado al documento y la diferencia sera: el RA.

Como podrás observar en la imagen, el numero 172 tiene revisión RA y revisión RB, ahí me interesaría que abriera la ultima revisión. Estas tendrán un consecutivo en letra RA, RB, RC, RD... etc. ¿Se podrá? 

Saludos. 

 H  o l a : 

Con mucho gusto te ayudo con todas tus peticiones.

Valora esta respuesta y crea una nueva pregunta en el tema de microsoft Excel. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas