Pannello di Controllo Moderatore ]

Macro Calc convertire tutti i file in cartella .XLS in .PDF

Creare una macro - Scrivere uno script - Usare le API

Macro Calc convertire tutti i file in cartella .XLS in .PDF

Messaggioda Darkpunkers » mercoledì 5 settembre 2018, 21:09

Buonasera a tutti,

chiederei cortesemente aiuto, se fattibile, a qualche Guru di Basic, in quanto avrei bisogno di una Macro per Calc di Openoffice, che converta in PDF tutti i documenti .xls presenti in una data cartella.
Il percorso della suddetta cartella può anche essere lo stesso del file .xls che conterrà la macro....

Provengo da una piccola esperienza con VBA di Excel, ed è proprio un altro mondo il Basic...sono parecchio spaesato.

Premetto di aver già cercato con la funzione "Cerca" del Forum, come da suggerimenti dislocati in varie zone dello stesso Forum, ma non ho trovato nulla che possa fare al caso mio... :crazy:

Ringrazio anticipatamente chi potrà in qualche modo aiutarmi :roll:
Windows 7 - Openoffice 4.1.5
Darkpunkers
 
Messaggi: 5
Iscritto il: mercoledì 5 settembre 2018, 20:05

Re: Macro Calc convertire tutti i file in cartella .XLS in .

Messaggioda charlie » giovedì 6 settembre 2018, 6:25

Argomento spostato.
charlie
macOS 10.12 Sierra: Open Office 4.1.5 - LibreOffice 6.0.7
Windows 7 pro (VirtualBox): Open Office 4.1.5 - LibreOffice 5.4.4.2
Ubuntu 17.04 LTE (VirtualBox): LibreOffice 5.1.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 5455
Iscritto il: mercoledì 19 dicembre 2012, 10:50

Re: Macro Calc convertire tutti i file in cartella .XLS in .

Messaggioda patel » giovedì 6 settembre 2018, 17:08

prova questa modificando i percorsi

Codice: Seleziona tutto   Espandi visualeStringi visuale
Sub PDFconvert_InFolder
Dim DocName as object, DocUlr as string, dummy()
Dim mStoreOpts(1) As New com.sun.star.beans.PropertyValue
sPath ="F:\Download\" ' cartella con i file xls
destPath ="F:\Download\A\"  ' cartella destinazione pdf
sFileName = Dir(sPath & "*.xls", 0)
Do While (sFileName <> "")
   DocUrl = ConvertToURL(sPath & sFileName)
   DocName = StarDesktop.loadComponentFromURL (DocUrl, "_blank",0, Dummy() )
   mStoreOpts(0).Name = "Overwrite"
   mStoreOpts(0).Value = True
   mStoreOpts(1).Name = "FilterName"
   mStoreOpts(1).Value = "calc_pdf_Export"
   sUrl =  destPath & sFileName & ".PDF"
   DocUrl = ConvertToURL(sUrl)
   DocName.storeToURL(DocUrl, mStoreOpts())
   DocName.Close(true)
   sFileName = Dir
Loop

End Sub
-------------------
OpenOffice 4.1 e Libre Office 6 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 2948
Iscritto il: venerdì 30 aprile 2010, 7:04
Località: Livorno

Re: Macro Calc convertire tutti i file in cartella .XLS in .

Messaggioda Darkpunkers » lunedì 24 settembre 2018, 19:08

Innanzitutto, chiedo scusa per il ritardo con il quale rispondo, ma per fortuna ho dovuto assolvere il duro compito delle ferie... :)

charlie ha scritto:Argomento spostato.

chiedo nuovamente scusa per l'eventuale errore... :-|

patel ha scritto:prova questa modificando i percorsi

Codice: Seleziona tutto   Espandi visualeStringi visuale
Sub PDFconvert_InFolder
Dim DocName as object, DocUlr as string, dummy()
Dim mStoreOpts(1) As New com.sun.star.beans.PropertyValue
sPath ="F:\Download\" ' cartella con i file xls
destPath ="F:\Download\A\"  ' cartella destinazione pdf
sFileName = Dir(sPath & "*.xls", 0)
Do While (sFileName <> "")
   DocUrl = ConvertToURL(sPath & sFileName)
   DocName = StarDesktop.loadComponentFromURL (DocUrl, "_blank",0, Dummy() )
   mStoreOpts(0).Name = "Overwrite"
   mStoreOpts(0).Value = True
   mStoreOpts(1).Name = "FilterName"
   mStoreOpts(1).Value = "calc_pdf_Export"
   sUrl =  destPath & sFileName & ".PDF"
   DocUrl = ConvertToURL(sUrl)
   DocName.storeToURL(DocUrl, mStoreOpts())
   DocName.Close(true)
   sFileName = Dir
Loop

End Sub


Grazie Patel, sei un Genio... :bravo: non so davvero come ringraziarti, funziona alla grande e mi hai aperto la mente :super: :super: :super:
Giusto per la cronaca, grazie alle informazioni presenti in un altro tuo post presente sul forum, ho aggiunto una piccola modifica che permette di scegliere la cartella nella quale sono presenti i file da convertire.

Grazie ancora e ci si legge in giro per il forum, penso che bazzicherò spesso da queste parti... :ugeek: Ciao
Windows 7 - Openoffice 4.1.5
Darkpunkers
 
Messaggi: 5
Iscritto il: mercoledì 5 settembre 2018, 20:05

Re: Macro Calc convertire tutti i file in cartella .XLS in .

Messaggioda patel » martedì 25 settembre 2018, 7:17

grazie del riscontro, ti dispiace condividere il codice da te modificato ? potrebbe essere utile ad altri.
-------------------
OpenOffice 4.1 e Libre Office 6 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 2948
Iscritto il: venerdì 30 aprile 2010, 7:04
Località: Livorno

Re: Macro Calc convertire tutti i file in cartella .XLS in .

Messaggioda Darkpunkers » martedì 25 settembre 2018, 20:59

patel ha scritto:grazie del riscontro, ti dispiace condividere il codice da te modificato ? potrebbe essere utile ad altri.


Certamente, mi sembra il minimo :super:
Ho anche fatto una piccola modifica per evitare che i file venissero salvati con la doppia estensione ".xls.pdf", anche se non pregiudicava il corretto funzionamento :super: e messo un messaggio con il numero dei documenti convertiti :super: :super: :super:

Codice: Seleziona tutto   Espandi visualeStringi visuale
Sub XLStoPDFconvert_InFolder
Dim DocName as object, DocUlr as string, dummy()
Dim mStoreOpts(1) As New com.sun.star.beans.PropertyValue
sPath =ChooseADirectory() & "/"
destPath =sPath & "/File_Pdf/"  ' cartella destinazione pdf
sFileName = Dir(sPath & "/*.xls", 0)
Cont=0
Flag=0
Do While (sFileName <> "")
   DocUrl = ConvertToURL(sPath & sFileName)
   DocName = StarDesktop.loadComponentFromURL (DocUrl, "_blank",0, Dummy() )
   mStoreOpts(0).Name = "Overwrite"
   mStoreOpts(0).Value = True
   mStoreOpts(1).Name = "FilterName"
   mStoreOpts(1).Value = "calc_pdf_Export"
   lungh=Len(sFileName)
   sUrl =  destPath & Left(sFileName,lungh-4) & ".PDF"
   DocUrl = ConvertToURL(sUrl)
   DocName.storeToURL(DocUrl, mStoreOpts())
   DocName.Close(true)
   sFileName = Dir
   Cont=cont+1
   flag=1
Loop
if flag=1 then
   msgbox "Sono stati convertiti " & Cont & " file in PDF",  "File convertiti correttamente"
end if
End Sub

Function ChooseADirectory(Optional sInPath$) As String
Dim oDialog As Object
Dim oSFA As Object
Dim s As String
Dim oPathSettings
oDialog = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
oSFA = createUnoService("com.sun.star.ucb.SimpleFileAccess")
If oDialog.Execute() = 1 Then
     ChooseADirectory() = oDialog.getDirectory()
End If
End Function
Windows 7 - Openoffice 4.1.5
Darkpunkers
 
Messaggi: 5
Iscritto il: mercoledì 5 settembre 2018, 20:05

Re: Macro Calc convertire tutti i file in cartella .XLS in .

Messaggioda patel » mercoledì 26 settembre 2018, 7:40

Ottimo lavoro :super:
-------------------
OpenOffice 4.1 e Libre Office 6 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 2948
Iscritto il: venerdì 30 aprile 2010, 7:04
Località: Livorno

Re: Macro Calc convertire tutti i file in cartella .XLS in .

Messaggioda Darkpunkers » venerdì 5 ottobre 2018, 17:50

patel ha scritto:Ottimo lavoro :super:


Grazie Mille.... :D ma mi sa che è merito tuo :lol: :super:
Windows 7 - Openoffice 4.1.5
Darkpunkers
 
Messaggi: 5
Iscritto il: mercoledì 5 settembre 2018, 20:05


Torna a Macro e UNO API

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti