[Risolto] Esporta selezione in PDF dando il nome del foglio

Creare una macro - Scrivere uno script - Usare le API
Rispondi
Avatar utente
Marilù
Messaggi: 18
Iscritto il: sabato 21 dicembre 2013, 14:15

[Risolto] Esporta selezione in PDF dando il nome del foglio

Messaggio da Marilù »

Buongiorno a tutti,

come faccio a trasformare questa macro, che esporta la selezione in Pdf, nominando tale pdf in base al contenuto di un determinata cella;

in una macro che esporta la selezione chiamando il pdf con il nome del foglio di Calc (senza bisogno di scrivere prima il nome in una cella)

La macro, (ripresa da questa discussione http://www.istitutomajorana.it/forum2/T ... ht=esporta )
sarebbe questa:

Codice: Seleziona tutto

REM ***** BASIC *****


sub EsportaSelezione_in_PDF
Dim mFilterData(0) As New com.sun.star.beans.PropertyValue
oDoc = ThisComponent
Sheet = oDoc.getCurrentController.ActiveSheet
aSel = oDoc.getCurrentSelection.RangeAddress
cellnum =Sheet.getCellRangeByName("A1").string
fname ="file:///percorsofile/ " & cellnum & ".PDF" ' <<< nome del file
mFilterData(0).Name = "Selection"
mFilterData(0).Value = Sheet.getCellRangeByPosition(aSel.StartColumn, aSel.StartRow, aSel.EndColumn, aSel.EndRow)


'parametri di esportazione
Dim mStoreOpts(2) As New com.sun.star.beans.PropertyValue
mStoreOpts(0).Name = "Overwrite"
mStoreOpts(0).Value = True
mStoreOpts(1).Name = "FilterName"
mStoreOpts(1).Value = "calc_pdf_Export"
mStoreOpts(2).Name = "FilterData"
mStoreOpts(2).Value = mFilterData()
ThisComponent.storeToURL(fname, mStoreOpts())


end sub
dove credo vada cambiata la riga
fname ="file:///percorsofile/ " & cellnum & ".PDF" ' <<< nome del file
e metterci
fname="file:///percorsofile/ "& comando che indichi in nome del foglio ".PDF" '

Ho visto questo http://www.claudiotomasoni.it/wordpress/worksheet-name/ ma non so come utilizzarlo.

Grazie
Ultima modifica di charlie il sabato 27 gennaio 2018, 18:41, modificato 3 volte in totale.
Motivazione: Aggiunta spunta verde
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Esporta selezione in PDF dando il nome del foglio

Messaggio da unlucky83 »

Se cerchi nel forum trovi qualcosa in merito, per esempio c’è questa discussione
viewtopic.php?f=26&t=7501&p=39724&hilit ... pdf#p39726
Nella Macro ci sono le due righe di codice per estrarre il nome del documento
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
Marilù
Messaggi: 18
Iscritto il: sabato 21 dicembre 2013, 14:15

Re: Esporta selezione in PDF dando il nome del foglio

Messaggio da Marilù »

Ecco la nuova macro:

Codice: Seleziona tutto

sub Selezione_in_PDF_con_nome_del_foglio
Dim mFilterData(0) As New com.sun.star.beans.PropertyValue
oDoc = ThisComponent
Sheet = oDoc.getCurrentController.ActiveSheet
aSel = oDoc.getCurrentSelection.RangeAddress
fname ="file:///home/utente/percorso/cartella/ " & ThisComponent.getCurrentController.getActiveSheet.Name & _
  ".PDF" ' <<< nome del file
mFilterData(0).Name = "Selection"
mFilterData(0).Value = Sheet.getCellRangeByPosition(aSel.StartColumn, aSel.StartRow, aSel.EndColumn, aSel.EndRow)

'parametri di esportazione
Dim mStoreOpts(2) As New com.sun.star.beans.PropertyValue
mStoreOpts(0).Name = "Overwrite"
mStoreOpts(0).Value = True
mStoreOpts(1).Name = "FilterName"
mStoreOpts(1).Value = "calc_pdf_Export"
mStoreOpts(2).Name = "FilterData"
mStoreOpts(2).Value = mFilterData()
ThisComponent.storeToURL(fname, mStoreOpts())
end sub
La parte file:///home/utente/percorso/cartella/ va personalizzata con il proprio percorso cartella (siccome uso Ubuntu, non so se se su Windows il percorso si indichi alla stessa maniera)

La differenza con la macro di Patel nel mio primo post è che quest'ultima prende il nome da quello del foglio, senza che ci sia bisogno di scriverlo prima in una cella.

Il comando per il nome del foglio l'ho trovato qui:
https://www.debugpoint.com/2015/08/expo ... ing-macro/
Però la macro nel link ha il difetto che esporta le celle in un range predefinito (es da A1 a F20) mentre in quella di Patel la selezione può variare e riesce ad esportare in PDF le celle che sono state selezionate.
Ultima modifica di Marilù il sabato 27 gennaio 2018, 18:02, modificato 1 volta in totale.
patel
Volontario attivo
Volontario attivo
Messaggi: 4016
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: [Risolto ] Esporta selezione in PDF dando il nome del fo

Messaggio da patel »

Ciao Marilù, vedo che hai fatto molti progressi con le macro, complimenti a te :super:
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
Marilù
Messaggi: 18
Iscritto il: sabato 21 dicembre 2013, 14:15

Re: [Risolto ] Esporta selezione in PDF dando il nome del fo

Messaggio da Marilù »

Grazie Patel.
da autodidatta, confronto le varie macro che trovo in giro, spulciando nei vari blog e cerco di capire cosa fanno i vari comandi.
Ho visto che c'è una guida https://wiki.openoffice.org/wiki/IT/Doc ... e/Language ma ho letto finora solo due capitoli...
Rispondi