Como insertar distintas imágenes a una lista de excel

Espero me ayuden
Tengo una base de datos simple, pero de aproximadamente 10.000 números, del 1 al 10000 en la Columna A. Adicionalmente tengo 10.000 imágenes en una carpeta del PC y lo que necesito es generar una base de datos en donde en la columna A estén los números del 1 al 10000 y en la columna B se inserten las imágenes correspondientes a cada numero.

¿Hay alguna forma de hacerlo que no sea una a una con la función de hipervínculo?

Esto es para hacer una base de datos que me permita diseñar en Adobe Indesign números para corredores de maratón en la que aparte del correlativo de numero de cada corredor (del 1 al 10.000) pueda imprimir al mismo tiempo la imagen que corresponde a cada numero (es una especie de código QR)

1 respuesta

Respuesta

Para generar los 10.000 de la columna A haz lo siguiente:

Ponte en la celda A1 y escribe un 1, después en la celda  A2 pon =A1+1

Después creas un botón, haz doble click en el y pones este código. Te crea un hipervínculo aunque el archivo no exista.

Private Sub CommandButton1_Click()
    Dim i As Integer
    Dim carpeta_fotos as string
    Dim archivo As String
    carpeta_fotos="D:\fotos" '<== Pon la carpeta donde están las fotos
    ' Si ya tienes los 10.000 de la fila A pon un ' delante en las siguientes 4 filas 
 ' o borralas. El ' es la tecla a la derecha del 0
    Hoja1. Range("A2"). Copy
    'Si lo haces te quedaría así
    'Hoja1. Range("A2"). Copy
    Hoja1. Range("A3:A10000"). PasteSpecial xlPasteAll
    Hoja1. Range("A1:A10000"). Copy
    Hoja1. Range("A1:A10000"). PasteSpecial xlPasteValues
    For i = 1 To 10000
        archivo = CStr(Range("A" + CStr(i))) + ".jpg" '<== he puesto jpg porque es lo habitual, si no cambia la extensión de los archivos
        Range("B" + CStr(i)).Select
        Call hyper(carpeta_fotos, archivo, "Foto " + CStr(Range("A" + CStr(i)))) '<== el texto Foto se puede cambiar, es el texto muestra el hipervinculo
    Next i
End Sub
Private Sub hyper(carpeta As String, archivo As String, texto As String)
    Dim Path As String, file As String, texto_a_mostrar As String
    Path = carpeta
    file = archivo
    texto_a_mostrar = texto
    ActiveCell.Formula = "=HYPERLINK(""" & MyPath & MyFile & """,""" & FriendlyName & """)"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas