Condividi:        

Macro per xls a 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

Macro per xls a pdf

Postdi Lele2774 » 05/10/12 22:17

Ciao

ho bisogno di un grande, anzi grandissimo aiuto e spero che qualcuno possa aiutarmi.
non dovrebbe essere una cosa particolarmente difficile.

ho un file di excel con 2 sheet (foglio1 e foglio2)
io avrei bisogno di una macro che salvi foglio1 in formato pdf con il nome riportato in una cella (ad esempio A1) in una directory (diciamo cartella Pippo) e foglio2 (sempre in formato pdf) sempre con un nome nella cella A1 in un'altra cartella (per esempio Paperino).

semplificando:

Xls (sheet1 e sheet 2)====MACRO====> pdf1 in Pippo e pdf2 in Paperino)

grazie a tutti per l'aiuto
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Sponsor
 

Re: Macro per xls a pdf

Postdi Anthony47 » 06/10/12 00:59

Vedi la macro sviluppata per Alea in questa lunga e confusa discussione: viewtopic.php?f=26&t=94224

Si tratta di una macro di stampa (macroPrintPDF1) che va richiamata da una seconda macro che "spiega" directory e nome file da usare.

La macro di stampa:
Codice: Seleziona tutto
Sub macroPrintPDF1(ByVal PercF As String, ByVal NFile As String)
'
'QUESTA VERSIONE E' DA RICHIAMARE COME UNA FUNZIONE DA ALTRA MACRO
' Es Call macroPrintPDF1 ("C:\Documenti\","pippo.pdf")
'
'Dim objPDFCreator As PDFCreator.clsPDFCreator '>> Early Bind
Dim objPDFCreator  '<<<  Late Bind

On Error Resume Next
    If Dir(PercF & NFile) = PercF & NFile Then Kill (PercF & NFile)
    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") = PercF
.cOption("AutosaveFilename") = NFile
.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(PercF & NFile) = NFile
'
'clear finale oggetto e kill processo
Set objPDFCreator = Nothing
Shell "taskkill /f /im PDFCreator.exe", vbHide
'
End Sub

La macro di richiamo, nel tuo caso dovrebbe essere:
Codice: Seleziona tutto
Sub PrintF12()
Sheets("Foglio1").select
     PercF="C:\QualeDirectory"   
     NFile=Range("A1").Value & ".pdf"
     Call macroPrintPDF1(PercF & "\", NFile)
Sheets("Foglio2").select
     PercF="C:\QualeDirectory2"   
     NFile=Range("A1").Value & ".pdf"
     Call macroPrintPDF1(PercF & "\", NFile)
End Sub

Prova e fai sapere.


Edit:
Quanto proposto ha senso sulle versioni Excel fino a XL2003; da XL2007 infatti il salvataggio in formato "pdf" e' gestito in modo nativo. Vedi post successivi a questo.
Anthony
Avatar utente
Anthony47
Moderatore
 
Post: 19431
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per xls a pdf

Postdi Lele2774 » 06/10/12 09:07

anche in questo caso..... ci provo :-D
speriamo di essere in grado.

ancora grazie!!!!
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Macro per xls a pdf

Postdi Anthony47 » 06/10/12 15:13

Una precisazione, che probabilmente e' presente nella lunga discussione che ti ho linkato ma che e' bene fare in chiaro: devi prima installare la stampante virtuale PDFcreator che puoi scaricare qui: http://sourceforge.net/projects/pdfcreator/

In questo modo quando vai in stampa da qualsiasi applicativo Window avrai la possibilita' di stampare su PDFcreator, che corrisponde a creare un file pdf.
Per l' uso delle macro: da excel premi Alt-F11 e ti si aprira' l' editor delle macro; Menu /Inserisci /Modulo e si crea "Modulo1"; copia il codice delle macro e incollale su Modulo1. Personalizza il codice di Sub PrintF12 (i nomi dei fogli da stampare, le celle in cui prendere il nome scritto senza ".pdf"), lancia la macro (da excel: alt-F8, seleziona PrintF12 dall' elenco delle macro disponibili, premi Esegui).

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

Re: Macro per xls a pdf

Postdi Lele2774 » 06/10/12 15:26

mmmm.....qui temo che dovrò lavorarci un pochettino.
grazie ancora
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Macro per xls a pdf

Postdi Lele2774 » 06/10/12 15:41

ho provato con la macro seguente, ma non funziona.
non capisco perchè.

brevissima spiegazione:
il file xls è composto da 3 fogli
- interfaccia (dove è posizionato il bottone per avviare la macro)
- Selling
- Buying

le 2 cartelle ove andare a salvare i file pdf in questione si chiamano:
- Buying
- Selling

mentre il nome con il quale si dovrebbe salvare i 2 file in pdf si trova nella cella A3

spero che tu possa aiutarmi :-)
--------------------------------------------------
Sub Macro3()
'
' Macro3 Macro
'

'
Sheets("Buying").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\admin\Desktop\Prova\Buying\Range("C3").Value & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Sheets("Selling").Select
Range("A1").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\admin\Desktop\Prova\Selling\Range("C3").Value & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Sheets("Interfaccia").Select
Range("A1").Select
End Sub
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Macro per xls a pdf

Postdi Anthony47 » 06/10/12 19:08

Ah ma allora hai 2007 o 2010, dove il formato pdf e' supportato in modo nativo...

Diamo per scontato che la directory C:\Users\admin\Desktop\Prova\Buying esista nel tuo pc; devi pero' comporre decorosamente il nome concatenando i valori costanti (inseriti tra gli apici) con i valori che devono essere estratti dal foglio; insomma nella tua macro non
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\admin\Desktop\Prova\Selling\Range("C3").Value & ".pdf", Quality:= _

ma
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\admin\Desktop\Prova\Selling\" & Range("C3").Value & ".pdf", Quality:= _


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

Re: Macro per xls a pdf

Postdi Lele2774 » 10/10/12 12:08

ti ringrazio moltissimo.

appena posso....ci riprovo ;-)
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Macro per xls a pdf

Postdi Lele2774 » 10/10/12 12:40

probabilmente....sono stupido
non riesco ad implementare correttamente questa MACRO
------------------------------
Sub BS_copy()
'
' BS_copy Macro
'

'
Sheets("AIR_1").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"\\Mxpfs01\shares\MXP Share\SALES\Quotation\sales activity 2012\quotazioni (selling)\" & Range("M3").Value & ".pdf", Quality:=_xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
Sheets("Buying").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"\\Mxpfs01\shares\MXP Share\SALES\Quotation\sales activity 2012\quotazioni (buying)\" & Range("M3").Value & ".pdf",
, Quality:=_xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
Sheets("AIR_1").Select
End Sub
-----------------------

non capisco dove accidenti sbaglio.
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Macro per xls a pdf

Postdi Anthony47 » 10/10/12 14:48

In che senso non riesci a implementarla? Quando la esegui che cosa ti succede?
I drive di rete a cui fai riferimento nel percorso del file sono accessibili in scrittura, provando manualmente?

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

Re: Macro per xls a pdf

Postdi Lele2774 » 11/10/12 20:09

succede che mi da errore.
mi si apre la pagina di programmazione segnalandomi che qualcosa non funziona regolarmente.

non lo so, forse è un problema di sintassi, ma non saprei dove cercare ( e quindi risolvere) il problema.

sta di fatto che con la medesima macro, invece di mettere l'istruzione di lettura del valore nella cella M3 per salvare il file in pdf, metto "pippo"...la macro mi crea il file, nella posizione corretta, nominandolo pippo.pdf.
UFFFFF....HELP!!!!!
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Macro per xls a pdf

Postdi Anthony47 » 11/10/12 23:38

succede che mi da errore.
mi si apre la pagina di programmazione segnalandomi che qualcosa non funziona regolarmente.
non lo so, forse è un problema di sintassi, ma non saprei dove cercare ( e quindi risolvere) il problema.
Lele, se non vuoi dire che errore ti da' ne' dove allora dovresti chiedere lumi o candele su http://www.lostregone.com. Io non avendo proprieta' paranormali non so che dire di fondato.
Per curiosita', in M3 che cosa c' e' scritto?

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

Re: Macro per xls a pdf

Postdi Lele2774 » 12/10/12 14:30

in M3 c'è una formula che restituisce una stringa di testo.

quanto all'errore, come detto, si apre l'editor indicandomi anche in questo caso un "runtime error"
Lele2774
Utente Junior
 
Post: 54
Iscritto il: 05/10/12 14:55

Re: Macro per xls a pdf

Postdi Anthony47 » 12/10/12 14:44

Se vuoi fare un passo avanti:
Quale errore, su quale linea, quando. Sono cose che il "debug" dice in chiaro sul tuo video (non sul mio); eventualmente fai uno screenshot in cui queste cose sono evidenti e pubblicalo

Che cosa e' visualizzato in M3 quando hai questo errore?

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


Torna a Applicazioni Office Windows


Topic correlati a "Macro per xls a pdf":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti