Crear una macro buscando una referencia

Concretamente se trata de intentar hacer una macro donde tengo un pdf con distintas columnas, quiero que busque una referencia o varias referencias en esa columna del pdf y envíe a un Excel esa referencia y además otra columna por ejemplo el precio de esa referencia. Resumiendo buscar varias referencias en un pdf y realizar un Excel con dos columnas una referencia y otra el precio que también esta en dicho pdf.

1 Respuesta

Respuesta
Sub BuscarReferenciasPDF()
    Dim AcroApp As Acrobat.AcroApp
    Dim AcroAVDoc As Acrobat.AcroAVDoc
    Dim AcroPDDoc As Acrobat.AcroPDDoc
    Dim AcroTextSelect As Acrobat.AcroPDTextSelect
    Dim HojaDestino As Worksheet
    Dim RangoDestino As Range
    Dim ArchivoPDF As String
    Dim Referencias() As String
    Dim Referencia As String
    Dim Precio As String
    Dim FilaDestino As Long
    ' Ruta del archivo PDF
    ArchivoPDF = "ruta\al\archivo.pdf"
    ' Array de referencias a buscar
    Referencias = Split("referencia1,referencia2,referencia3", ",")
    ' Hoja de Excel de destino
    Set HojaDestino = ThisWorkbook.Sheets("Hoja1")
    ' Rango de destino para escribir los resultados
    Set RangoDestino = HojaDestino.Range("A1")
    ' Inicializar la aplicación de Adobe Acrobat
    Set AcroApp = CreateObject("AcroExch.App")
    ' Abrir el archivo PDF
    AcroApp.Show
    Set AcroAVDoc = CreateObject("AcroExch.AVDoc")
    AcroAVDoc.Open ArchivoPDF, ""
    Set AcroPDDoc = AcroAVDoc.GetPDDoc
    ' Recorrer cada referencia
    For Each Referencia In Referencias
        ' Inicializar el texto seleccionado
        Set AcroTextSelect = CreateObject("AcroExch.PDTextSelect")
        ' Realizar la búsqueda en el PDF
        AcroTextSelect.Page = 0
        AcroTextSelect.FindText Referencia
        AcroTextSelect.SelectText
        ' Obtener el precio de la referencia (supongamos que está en la misma línea)
        Precio = Trim(AcroTextSelect.GetText(1))
        ' Escribir los resultados en la hoja de Excel
        FilaDestino = FilaDestino + 1
        RangoDestino.Offset(FilaDestino, 0).Value = Referencia
        RangoDestino.Offset(FilaDestino, 1).Value = Precio
    Next Referencia
    ' Cerrar el archivo PDF
    AcroAVDoc.Close (1)
    AcroApp.Exit
End Sub
  1. Modifica la ruta del archivo PDF en la variable ArchivoPDF con la ubicación de tu archivo.
  2. Modifica las referencias que deseas buscar en el PDF separadas por comas en la línea Referencias = Split("referencia1, referencia2, referencia3", ",").

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas