Risolto Macro e Script con Visual Basic Code

Parrot

Nuovo utente
18 Febbraio 2021
9
1
Padova
Excel 2019
0
Ciao a tutti.

Ho creato un file Excel di prova in cui vi è inserita una macro che permette di salvare come file PDF una porzione di foglio in uno specifico path.

Mediante Visual Studio Code ho provato a creare uno script che potesse eseguire la macro. L'intento è quello di automatizzare l'estrazione del foglio PDF così da metterci un report per poi condividerlo con gli interessati. Purtroppo, creando dapprima il file .VSB e successivamente il file .BAT mi ritorna un errore. Ho provato anche con una macro più semplice, un banale MsgBox per capirci, e funziona tutto perfettamente, però con la macro per il salvataggio in PDF c'è qualcosa che non va.

Avete un codice funzionante? O un procedimento alternativo per la creazione di scripting da consigliarmi?

Grazie mille
 

Parrot

Nuovo utente
18 Febbraio 2021
9
1
Padova
Excel 2019
0
Detto così non si capisce il problema.
Dovresti mettere un esempio e il codice del tuo VBS.
Attenzione che alcune istruzioni in VBS non sono uguali in VBA.
Ciao e grazie per la lettura. Allora, l'algoritmo per il salvataggio del worksheet in PDF è abbastanza standard, nel senso che definisco io il path e col comando apposito "worksheet.ExportAsFixedFormat ..." salvo il file. Per quanto riguardo il codice all'interno di Visual Studio Code ho scritto quanto segue:

Set xlsxApp = CreateObject("Excel.Application")
xlsxApp.Visible = True

Set xlsxWorkbook = xlsxApp.Workbooks.Open("percorsoFile.xlsm")
xlsxApp.Run("nomeMacro")

xlsxWorkbook.Close()

xlsxApp.Quit()

Al posto di "percorsoFile.xlsm" ho scritto la stringa riportata all'interno delle proprietà del documento Excel. Mentre al posto di "nomeMacro" ho inserito il nome della macro che permette di salvare il range del worksheet in PDF in uno specifico percorso. Ho salvato il file stando attendo che fosse .VBS e poi provando ad eseguirlo mi restituiva un errore del tipo "Impossibile eseguire la macro 'nomeMacro'. E' possibile che tale macro non sia disponibile nella cartella di lavoro o che tutte le macro siano disattivate."
La macro è inserita all'interno della cartella di lavoro e non credo sia necessario l'attivazione delle macro all'apertura dei fogli visto che, come detto anche in precedenza, inserendo una macro molto basic del tipo "MsgBox "Ciao"" lo script funziona.

Spero che qualcuno abbia avuto modo di ovviare a questo problema. Intanto ringrazio anzitempo per la disponibilità di chiunque voglia contribuire alla risoluzione del problema.
 

ildragoncello

Utente abituale
22 Dicembre 2020
143
18
Castelnuovo Magra - SP
2019 - Win10 Pr
9
Ho fatto un test con un mio file e funziona sia il lancio di Excel che l'esecuzione della macro.

Visual Basic:
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open(MioFile.xlsm", 0, true)
' Parametro 0 = Significa che le referenze esterne non verranno aggiornate
' true invece significa che il programma è aperto in sola lettura.
xlApp.Run "Controlla"
xlBook.Close
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

WScript.Echo "Finished."
 

Parrot

Nuovo utente
18 Febbraio 2021
9
1
Padova
Excel 2019
0
Ho fatto un test con un mio file e funziona sia il lancio di Excel che l'esecuzione della macro.

Visual Basic:
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open(MioFile.xlsm", 0, true)
' Parametro 0 = Significa che le referenze esterne non verranno aggiornate
' true invece significa che il programma è aperto in sola lettura.
xlApp.Run "Controlla"
xlBook.Close
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

WScript.Echo "Finished."
It works! Grazie mille per la disponibilità e la soluzione al problema. Sei stato molto gentile
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!