PDA

Visualizza versione completa : Commenti a: [Guida] Crea e invia file PDF da Excel con VBA


VincenzoGTA
18-02-2012, 16.14.53
Postate di seguito i vostri commenti a:
[Guida] Crea e invia file PDF da Excel con VBA (http://forum.wintricks.it/showthread.php?t=155317)

AMIGA
29-02-2012, 17.16.44
Vorrei sapere da Alexsandra, tecnicamente, c'è differenza qualitativa tra una conversione fatta direttamente da Excel ed una normale conversione in stampa PDF fatta con PrimoPDF, PDFCreator etc.., a parte la comodità dell'invio diretto dell' Email.

VincenzoGTA
29-02-2012, 21.43.51
Credo di poterti rispondere io:

Excel non converte niente, tramite codice VBA viene programmato per abilitare la stampante virtuale Bullzip (http://www.bullzip.com/products/pdf/download.php) che converte il file in PDF.
Terminata la creazione del file, viene riabilitata la stampante di sistema...

AMIGA
01-03-2012, 01.17.59
Si questo lo avevo capito pure io, mi riferivo al fatto che la stampa su PDF di documenti Excel ed Access, nella conversione, in alcuni casi subiscono modifiche, credevo che questa cosa potesse migliorare in qualche modo la compatibilità.

depurweb
27-05-2013, 11.27.42
salve a tutti ringrazio anticipatamente per questa guida utilissima.
Vorrei però chiedere una cosa.
non ho ben capito la seconda parte della guida, quella relativa all'invio del pdf.
quale comando devo attribure al pulsante spedisci? sbaglio o non è specificato?

Alexsandra
27-03-2014, 14.05.19
Vorrei sapere da Alexsandra, tecnicamente, c'è differenza qualitativa tra una conversione fatta direttamente da Excel ed una normale conversione in stampa PDF fatta con PrimoPDF, PDFCreator etc.., a parte la comodità dell'invio diretto dell' Email.


E’ molto tardi per la risposta, ma ho avuto dei problemi e non ho frequentato i forum, rispondo lo stesso, esponendo il mio punto di vista

A livello tecnico non vedo differenze tra i software che hai citato e Bullzip, sono tutte stampanti virtuali che usano le librerie Ghostscript, è anche vero che qualche problema può sorgere nella conversione, specialmente in presenza di caratteri speciali, cosa che non ho riscontrato con Bullzip in questo ambiente, sia nelle prove sostenute all'atto della stesura della guida che nell’uso quotidiano che ne faccio. Diciamo che la scelta è dovuta principalmente al fatto di usare VBA ed essendo in un ambiente di programmazione l’unico prodotto che si interfacci con VBA in modo "silente" è Bullzip.
Infatti lanciando la creazione del file Pdf non compaiono avvisi a video, nessun setup da fare, per cui si prestava a quello che cercavo, cioè un conversione del file .xls senza tante operazioni da fare ogni volta in modo da rendere l’operatore completamente autonomo.
Io cercavo un metodo sbrigativo per convertire il foglio finale di excel in pdf e inviarlo a un destinatario scelto in un archivio di indirizzi, il tutto in maniera completamente indipendente dal client di posta che uno usa o da installazioni di software mirati. Infatti basta solo cliccare su un pulsante e si crea il file .pdf e su un altro tasto per inviarlo al destinatario.

Ecco io direi che la potenzialità di Bullzip sia questa, ti rende indipendente e autonoma senza tante richieste tecniche, svolge il suo compito in maniera veloce e con un ottimo livello di qualità, oltretutto è anche Free . :)

Alexsandra
27-03-2014, 14.07.34
salve a tutti ringrazio anticipatamente per questa guida utilissima.
Vorrei però chiedere una cosa.
non ho ben capito la seconda parte della guida, quella relativa all'invio del pdf.
quale comando devo attribure al pulsante spedisci? sbaglio o non è specificato?

Hai ragione, non c’è nessun riferimento al pulsante e tantomeno una riga di codice. :)

Al pulsante "crea pdf" devi associare il codice che vedi nella guida e metterlo in un modulo, mentre invece al pulsante "Invia pdf" devi associare il codice sotto riportato (che metti sempre in un modulo)

Sub invia()
Form1.Show
End Sub

Form1 è la userform che vedi nella guida quella con titolo "Invia email" che ha questo codice:

Questo codice lo associ al tasto "annulla" della form

Private Sub CommandButton1_Click()
Unload Me
End Sub

Questo codice lo associ al tasto "invia" della form

Private Sub CommandButton2_Click()
Sheets("email").Range("A1:A15").ClearContents
' setup variabili per creazione .bat
Sheets("email").[A1] = "CLS" 'pulisci lo schermo
Sheets("email").[A2] = "set email=" & Sheets("info").[B5] 'set variabile mittente
Sheets("email").[A3] = "set server=-server " & Sheets("info").[B4] 'set smtp

Sheets("email").[A4] = "set dest=-to " & Sheets("DDT").[G12] 'set variabile destinatario
Sheets("email").[A5] = "set subject=-s " & Sheets("info").[B6] 'oggetto messaggio
Sheets("email").[A6] = "set attach=-attach " & Sheets("info").[B8] 'allegato
Sheets("email").[A7] = "set path1=" & Sheets("info").[B9]

' comandi per blat
Sheets("email").[A8] = "@CD\"
Sheets("email").[A9] = "@CD %path1%"
Sheets("email").[A10] = "@blat -install %server% %email%"
Sheets("email").[A11] = "@blat testo.txt %dest% %subject% %attach%"

CreaBat
End Sub

Private Sub UserForm_Activate()
TextBox1 = Sheets("info").[B4] ' smtp
TextBox2 = Sheets("info").[B5] ' mittente
TextBox3 = Sheets("info").[B8] ' path file
TextBox4 = Sheets("DDT").[G12] ' destinatario
TextBox5 = Sheets("info").[B6] ' oggetto messaggio

End Sub

Private Sub CreaBat()
'creafile
Application.ScreenUpdating = False
Sheets("email").Activate

namefile = ActiveSheet.Name
numrig = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
mfilehandle = FreeFile

Dim Unit, DirProg As String
Unit = Sheets("Info").[B1]
DirProg = Sheets("Info").[B2]

pathbat = Unit & DirProg & namefile & ".bat"
a = " "
Open pathbat For Output As #mfilehandle
For ct1 = 1 To numrig
dato1 = ActiveSheet.Cells(ct1, 1)
Print #mfilehandle, dato1
Next ct1
Close #mfilehandle
Sheets("DDT").Activate


Shell ("C:\Preventivi\email.bat"), 1

Form1.Hide

End Sub

PS: fai attenzione ai riferimenti di Foglio e di Range che sono presenti nel codice.

AMIGA
27-03-2014, 14.31.10
Bentornata Alexsandra !

Alexsandra
27-03-2014, 20.12.27
Grazie :)