Buongiorno a tutti, ho utilizzato il codice sottoriportato (trovato nello storico delle discussioni), dell'amico Norman, che mi permette di incollare il testo da un pdf ed incollarlo in un foglio di Excel.
Ho il problema che il codice si basa solo su di un file Pdf di una sola pagina.
Desidero poterlo utilizzare su di un file PDF di 80 pagine che hanno tutte la stessa formattazione.
Chiedo se sia possibile pure, poter scegliere (dopo aver selezionato il file pdf) su quale foglio incollare i dati dato che successivamente devo confrontare due fogli ed evidenziare in un terzo foglio i dati diversi tra i 2 fogli confrontati.
Spero di essere stato chiaro e comprensibile.
Option Explicit
'--------->>
Private Declare Function FindExecutable _
Lib "shell32.dll" Alias "FindExecutableA" ( _
ByVal lpFile As String, ByVal lpDirectory As String, _
ByVal lpResult As String) As Long
'--------->>
Public Sub SelezionaPdf()
Dim wk As Workbook
Dim sh As Worksheet
Dim PageName As Variant, PageName2 As String
Dim Cartella As String
Const CR As String = "Foglio1"
Const istruz As String = "Foglio2"
Sheets("Foglio1").Select
Cartella = ActiveWorkbook.Name
Set wk = ThisWorkbook
Set sh = wk.Worksheets(CR)
PageName = Application _
.GetOpenFilename("Text Files (*.pdf), *.pdf")
If PageName <> False Then
MsgBox "Open " & PageName
End If
If PageName = "False" Then
Exit Sub
End If
Sheets(istruz).Range("I1").Value = PageName
Sheets(CR).Select
Sheets(CR).Range("A:K").ClearContents
Range("A1").Select
' Salva in questo percorso il file PDf Acquisito
PageName2 = "C:\Users\xxxxxx\Desktop\mio.pdf"
FileCopy PageName, PageName2
Call OpenPDF(PageName2)
Application.Wait (Now + TimeValue("0:00:04"))
SendKeys "^a", True
Application.Wait (Now + TimeValue("0:00:02"))
SendKeys "^c", True
Application.Wait (Now + TimeValue("0:00:05"))
SendKeys ("%fx")
AppActivate "Excel"
'AppActivate "Microsoft Excel"
wk.Activate
sh.Activate
MsgBox "Premi Ok per incollare"
'\ Nuova istruzione
DoEvents
SendKeys ("^v")
'\ Nuova istruzione
DoEvents
Sheets(istruz).Select
Range("A1").Select
'Set a Nothing delle variabili oggetto
Set sh = Nothing
Set wk = Nothing
End Sub
'--------->>
Sub OpenPDF(filename As String)
Dim ExeName As String
Dim N As Long
ExeName = String(260, 0)
N = FindExecutable(filename, vbNullString, ExeName)
ExeName = Left(ExeName, InStr(1, ExeName, vbNullChar) - 1)
Shell ExeName & " " & Chr(34) & filename & Chr(34), vbNormalFocus
End Sub
Ciao Nicola.