Condividi:        

[Excel] Macro personalizzata per salvare in PDF

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Macro personalizzata per salvare in PDF

Postdi luca_061088 » 14/01/14 14:56

Buongiorno a tutti

Sono 2 giorni che cerco di venirne a capo ma senza successo

Ho bisogno di creare una macro per Salvare (non stampare) in PDF il foglio di lavoro di excel sul quale sto lavorando
Mi spiego meglio:

Devo creare una macro che venga messa in ogni file excel che vado a creare da 0 (tipo si creano macro nel file normal di Word per intenderci, che poi sono presenti in ogni file word che si va a creare)

Questa macro, deve salvare il documento in PDF, con nome del documento stesso e nello stesso percorso del documento. Spero di essermi spiegato in maniera corretta e spero che riusciate ad aiutarmi, in quanto lavorando con fogli di excel tutti i giorni, una macro per velocizzare il processo salvataggio in PDF sarebbe proprio comoda :)

Vi ringrazio in anticipo

Luca
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Sponsor
 

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi Anthony47 » 14/01/14 23:49

Ciao luca_061088, benvenuto nel forum.
Per rispondere al meglio e' necessario sapere quale versione di Excel userai.

Ciao, ti aspettiamo.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi luca_061088 » 15/01/14 08:12

Ciao Anthony

Uso la versione 2010 di Excel :)

Luca
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi Gattuccio0 » 15/01/14 12:51

Ciao luca_061088,
farò una domanda stupida: se stai lavorando sul file in Excel, dove puoi tranquillamente fare "salva con nome" e dare il .pdf (e non la stampa), che cosa ti serve la macro se lavori su ogni file singolarmente?
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi luca_061088 » 15/01/14 13:07

Semplicemente per accelerare il tempo di salvataggio, in quanto, lavorando su diversi file excel almeno una decina ogni ora diversi, devo ottimizzare i tempi di salvataggio a un singolo Click, tutto qua :(
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi Gattuccio0 » 15/01/14 13:09

Registra Macro?
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi luca_061088 » 15/01/14 13:11

? non conosco molto bene Excel purtroppo, cosa intendi per Registra Macro? o meglio, non conosco il VBA per creare le Macro, che è ancora peggio hahaha
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48


Re: [Excel] Macro personalizzata per salvare in PDF

Postdi luca_061088 » 15/01/14 13:33

Hum, ripeto, non conoscendo il linguaggio VBA, non saprei come adattarla al mio foglio, oltretutto quella macro salva il file in un percorso specifico, a me serve che salvi il file nello stesso percorso dove si trova il file di excel :)
Sono ignorante lo so haha
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi luca_061088 » 15/01/14 13:40

Io avevo provato questa macro di Anthony e funziona

Codice: Seleziona tutto
Sub macroPrintPDF()
'QUESTA FUNZIONA, le altre sono tutte prototipi manipolati
'Le righe marcate <<< e >>> sono alternative; quelle >>> richiedono
'   di impostare il riferimento alla libreria PDFCreator (menu /Riferimenti /...)
'Come e' ora NON e' necessario avere il "Riferimento" a pdfcreator nel vba
'
'Dim objPDFCreator As PDFCreator.clsPDFCreator '>> Early Bind
Dim objPDFCreator  '<<<  Late Bind
Dim Perc As String
Dim Nome As String
'
Nome = "mona.pdf" 'Worksheets("ORIGINALE").Range("EI4").Value   '<<<< assicurati che i EI4 ci sia una stringa o un numero (senza caratteri speciali)
Perc = ThisWorkbook.Path & "\pdf_prelievi\"
'
On Error Resume Next
    If Dir(Perc & Nome) = Nome Then Kill (Perc & Nome)
    Shell "taskkill /f /im PDFCreator.exe", vbHide
Application.Wait (Now + TimeValue("0:00:05"))
On Error GoTo 0
'
'Set objPDFCreator = New PDFCreator.clsPDFCreator '>>>
Set objPDFCreator = CreateObject("PDFCreator.clsPDFCreator") '<<
aaa1 = objPDFCreator.cProgramIsRunning

With objPDFCreator
.cStart "/NoProcessingAtStartup"
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = Perc
.cOption("AutosaveFilename") = Nome
.cOption("AutosaveFormat") = 0
aaa = .cOption("AutosaveFilename")
.cVisible = False
.cClearCache
End With
'
ActiveSheet.PrintOut Copies:=1, ActivePrinter:="PDFCreator"   'stampa "Foglio"
objPDFCreator.cPrinterStop = False

'attesa disponibilita' file finale
Do
   DoEvents
Loop Until Dir(Perc & Nome) = Nome
'
'clear finale oggetto e kill processo
Set objPDFCreator = Nothing
Shell "taskkill /f /im PDFCreator.exe", vbHide
'
End Sub


Ho modificato questa stringa
Codice: Seleziona tutto
Perc = ThisWorkbook.Path & "\pdf_prelievi\"

con
Codice: Seleziona tutto
Perc = ThisWorkbook.Path


mi salva il foglio di excel in PDF nello stesso percorso, ma non riesco a venire a capo del fatto Nome file. Lui mi da come nome file mona.pdf, ma io vorrei che il nome del file pdf sia lo stesso del documento excel.
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi peppo55 » 15/01/14 14:16

Ciao luca_061088

Excel 2010 ti permette di fare tutto quello che hai specificato, senza macro scritte.
Premi il pulsante File (barra multifunzione) poi Opzioni > Barra di accesso rapido.
Nella parte sinistra “Scegli comandi da:” > “Tutti i comandi”. Fai scorrere la barra fino quando trovi il comando “Pubblica come PDF o XPS” . Lo selezioni e premi “Aggiungi” . Controlla che in alto sia specificato
“Per tutti i documenti” e premi OK. Sulla barra di accesso rapido ci sarà un’icona. Premendo l’icona potrai salvare il file in formato PDF già con il nome del file di excel e nella stessa directory.
Qualsiasi file di excel che apri avrà sempre il comando per salvare in PDF.
peppo

Excel 2010
peppo55
Utente Senior
 
Post: 167
Iscritto il: 30/09/12 13:51

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi luca_061088 » 15/01/14 14:26

peppo55 ha scritto:Ciao luca_061088

Excel 2010 ti permette di fare tutto quello che hai specificato, senza macro scritte.
Premi il pulsante File (barra multifunzione) poi Opzioni > Barra di accesso rapido.
Nella parte sinistra “Scegli comandi da:” > “Tutti i comandi”. Fai scorrere la barra fino quando trovi il comando “Pubblica come PDF o XPS” . Lo selezioni e premi “Aggiungi” . Controlla che in alto sia specificato
“Per tutti i documenti” e premi OK. Sulla barra di accesso rapido ci sarà un’icona. Premendo l’icona potrai salvare il file in formato PDF già con il nome del file di excel e nella stessa directory.
Qualsiasi file di excel che apri avrà sempre il comando per salvare in PDF.


Potrebbe essere una valida alternativa alla macro sai peppo, ma è possibile evitare di dare la conferma dopo avere premuto il pulsante di Pubblicazione PDF? nel senso, io ho messo questo pulsante nella barra di accesso rapido, premendolo mi chiede il percorso, che come predefinito, mi da quello di origine del file (e va bene). ma è possibile evitare questo passaggio? ovvero, cliccare il pulsante e il documento viene salvato in automatico nella directory di origine e con nome di origine? o mi serve per l'appunto una macro?
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi peppo55 » 15/01/14 16:09

Ciao luca_061088

ti serve una macro. La macro però deve essere salvata come PERSONAL.XLSB, in modo tale che si possa attivare da qualsiasi cartella di lavoro che apri.
Ma ti crea così tanti problemi di tempo nel premere Pubblica ?
peppo

Excel 2010
peppo55
Utente Senior
 
Post: 167
Iscritto il: 30/09/12 13:51

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi luca_061088 » 15/01/14 16:11

No beh, non è un problema, è anche per incominciare a capire qualcosina sulle macro, di modo da potere apprendere anche qualcosa di nuovo :)
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi luca_061088 » 16/01/14 09:13

Quindi Nessuna macro è indicata per questo lavoro?
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi Anthony47 » 16/01/14 13:29

Come gia' e' stato detto, va bene una macro richiamata poi da una icona aggiunta nella Quick Access Toolbar.
Poiche' (immagino) vuoi utilizzare la macro su svariati file, la macro deve essere posizionata nel PERSONAL.XLSB, un file che (se presente) viene aperto automaticamente all' apertura di Excel.

Comincia col registrare una macro che fa l' operazione:
-Menu /Sviluppo /Gruppo Codice, Avvia registrazione macro
-Come "Nome macro" inserisci SalvaPDF, come "Memorizza in" scegli Cartella macro personale; Ok
-esegui da menu il salvataggio del foglio corrente in formato Pdf
-interrompi la registrazione (Menu /Sviluppo /Gruppo Codice, Interrompi registrazione)

Premi Alt-F11 per aprire l' editor delle macro; identifica nel frame Progetto-VBAproject la cartella VBAProject(Personal.xlsb), ed espandila cliccando sul "+" (vedi immagine)
Immagine

Ci sara' un "Modulo" al cui interno troverai una macro come questa:
Codice: Seleziona tutto
Sub SalvaPDF()
'
'
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\NOMEUTENTE\PERCORSO\NOMEFILE.pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
End Sub

Sostituisci tutto il codice con quest' altro:
Codice: Seleziona tutto
Sub SalvaPDF()
'
'
With ActiveWorkbook
    If .Path = "" Then Exit Sub
    pdfFile = .Path & "\" & Left(.Name, InStr(.Name, ".") - 1) & ".pdf"
End With
'
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfFile _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, OpenAfterPublish:=False
End Sub

Torna su excel e aggiungi nella Quick Access Toolbar una icona che lancia la suddetta macro:
-Menu /File /Opzioni, Quick Access Toolbar (Barra di accesso rapido)
-in alto a sx hai un box con la scelta "Scegli comando da"; scegli Macro
-seleziona la scelta Personal.xlsb!SalvaPDF; premi Aggiungi>>
-ora hai la macro presente nell' elenco di destra...
-premi Modifica, e avrai un elenco di Icone che puoi scegliere per rappresentare l' operazione; io ho scelto il simbolo "pi.greco" (solo per uso dimostrativo).
-Ok

A questo punto nella Quick Access Toolbar hai a disposizione il simbolo con la macro associata:
Immagine
image hosting


Tutte le volte che premi il simbolo sara' eseguita quella macro; il file Excel deve essere gia' stato salvato, cioe' avere un suo percorso e nome.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi luca_061088 » 16/01/14 13:52

Sei un grande Anthony, funziona alla grande, pazzesco :) , ma quindi la registrazione macro posso usarla per qualsiasi operazione di Excel o Word, perché praticamente lui registra l'operazione che vado a svolgere giusto?
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi Anthony47 » 16/01/14 16:00

Ho tradotto suggerimenti che erano gia' stati forniti da altri...

Una macro autoregistrata risolve il 50% dei problemi, e si presta a essere la base per elaborazioni successive.

Metti in Personal.xls solo le macro che vuoi tenere sempre a disposizione, e metti invece nella cartella di lavoro corrente le macro che servono su quel file.
Puoi associare alle macro un tasto di esecuzione veloce (contr + carattere), o associare la macro a un pulsante (il piu' semplice lo trovi in Menu /Sviluppo / gruppo Controlli, Inserisci, Controlli Modulo) o a una forma; oppure da Excel Alt-F8, scegli la macro dall' elenco che ti propone, premi Esegui.
Per visualizzare o modificare una macro, da Excel Alt-F8, scegli la macro, premi Modifica.
Con piccole modifiche puoi ottenere macro con prestazioni piu' ampie.

Qualche suggerimento di base lo trovi nel secondo messaggio di questa discussione: viewtopic.php?t=65537

Quindi continua a registrare...
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi luca_061088 » 17/01/14 08:26

Ti ringrazio ancora Anthony, sei stato gentilissimo e super disponibile :)

Luca
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi peppo55 » 18/01/14 17:11

Ciao luca_061088

una piccola modifica. Assegnare la giusta Icona.
-premi Modifica, e avrai un elenco di Icone che puoi scegliere per rappresentare l' operazione
Avrai notato che le icone a disposizione sono poche. In realtà le icone disponibili sono migliaia.
Se vuoi che l'icona sia quella del Pdf puoi fare questi passaggi.
-da opzioni seleziona Barra di accesso rapido
-da Importa/Esporta seleziona "Esporta tutte le personalizzazioni"
-premi salva
Il file salvato lo puoi aprire con Blocco note.
-da Modifica (del blocco note) seleziona "Trova" e digita: imagemso
-tra le virgolette c'è un testo: EquationOptions
-sostituisci il testo con: FileSaveAsPdfOrXps chiudi e salva
-da Importa/Esporta seleziona "Importa file di personalizzazione"
-selezionalo e premi Apri e premi Si poi OK
Avrai l'icona del PDF
peppo

Excel 2010
peppo55
Utente Senior
 
Post: 167
Iscritto il: 30/09/12 13:51

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Macro personalizzata per salvare in PDF":


Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti