Moderatori: Anthony47, Flash30005
Private Sub CommandButtonSave_Click()
'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 Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Hai definito le pagine da stampare?" ' Definisce il messaggio.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Definisce i pulsanti.
Title = "A T T E N Z I O N E" ' Definisce il titolo.
'Help = "DEMO.HLP" ' Definisce il file della Guida (tralasciato)
'Ctxt = 1000 ' Definisce il contesto dell'argomento (tralasciato)
Response = MsgBox(Msg, Style, Title) ' Visualizza il messaggio
If Response = vbYes Then ' in caso di scelta affermativa
Dim g As String 'definisco che la mia "g" è una stringa
Dim s As String 'definisco che la mia "s" è una stringa
Dim pagP As String 'definisco che la mia "pagP" è una stringa
Dim pagA As String 'definisco che la mia "pagA" è una stringa
g = ActiveSheet.Range("i11").Value 'vado ad indicare cosa rappresenta la cella indicata, ovvero il nome del mio file
s = Sheets("SetUp").Range("M5").Value 'vado ad indicare cosa rappresenta la cella indicata, ovvero il percorso dove salvare il file
pagA = Sheets("setup").Range("v11").Value 'vado ad indicare cosa rappresenta la cella indicata, ovvero il numero della pagina iniziale
pagP = Sheets("SetUp").Range("v12").Value 'vado ad indicare cosa rappresenta la cella indicata, ovvero il numero della pagina finale
'
On Error Resume Next
If Dir(s & g) = g Then Kill (s & g)
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") = s
.cOption("AutosaveFilename") = g
.cOption("AutosaveFormat") = 0
aaa = .cOption("AutosaveFilename")
.cVisible = False
.cClearCache
End With
'
'ActiveSheet.PrintOut Copies:=1, ActivePrinter:="PDFCreator" 'stampa "Foglio"
ActiveSheet.PrintOut from:=pagA, to:=pagP, from:=1, to:=pagP, Copies:=1, ActivePrinter:="PDFCreator", Collate:=True, PrintToFile:=True, PrToFileName:=s & g & "_part1.pdf"
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 If '
End Sub
Private Sub CommandButtonSave_Click()
'qui attivo una finestra di dialogo per ricordarmi di aver selezionato le pagine da stampare
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Hai definito le pagine da stampare?" ' Definisce il messaggio.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Definisce i pulsanti.
Title = "A T T E N Z I O N E" ' Definisce il titolo.
'Help = "DEMO.HLP" ' Definisce il file della Guida (tralasciato)
'Ctxt = 1000 ' Definisce il contesto dell'argomento (tralasciato)
Response = MsgBox(Msg, Style, Title) ' Visualizza il messaggio
If Response = vbYes Then ' in caso di scelta affermativa
Dim PDFname As String 'definisco che la mia "PDFname" è una stringa
Dim PDFperc As String 'definisco che la mia "PDFperc" è una stringa
Dim pagP As String 'definisco che la mia "pagP" è una stringa
Dim pagA As String 'definisco che la mia "pagA" è una stringa
PDFname = ActiveSheet.Range("i11").Value 'vado ad indicare cosa rappresenta la cella indicata, ovvero il nome del mio file
PDFperc = Sheets("SetUp").Range("M5").Value 'vado ad indicare cosa rappresenta la cella indicata, ovvero il percorso dove salvare il file
pagA = Sheets("setup").Range("v11").Value 'vado ad indicare cosa rappresenta la cella indicata, ovvero il numero della pagina iniziale
pagP = Sheets("SetUp").Range("v12").Value 'vado ad indicare cosa rappresenta la cella indicata, ovvero il numero della pagina finale
'questa è la parte di codice che ho preso da quello che avevi postato
Dim objPDFCreator '<<< Late Bind
On Error GoTo ErrorMessage
Dim pdfjob As Object
'su quello tra parentesi non sono sicuro di averlo scritto correttamente
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
With pdfjob
If .cStart("/NoProcessingAtStartup") = False Then KillProcess (PDFCreator.exe) Else
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = PDFperc
.cOption("AutosaveFilename") = PDFname
.cOption("AutosaveFormat") = 0
.cClearCache
End With
ActiveSheet.PrintOut from: pagA , to:=pagP, Copies:=1, ActivePrinter:="PDFCreator" 'dopo il PrintOut ho inserito io da pagina a pagina
objPDFCreator.cPrinterStop = False
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'anche in questo caso non sono sicuro di aver compilato correttamente quello tra parentesi
Do Until Dir("PDFperc PDFname.pdf") <> ""
DoEvents
Loop
pdfjob.cClose
Set pdfjob = Nothing
End If
End Sub
Sub testa()
Call macroPrintPDF1(ThisWorkbook.Path & "\", "pippoMONA.pdf")
End Sub
Torna a Applicazioni Office Windows
Salvare file excel in formato html escludendo le immagini Autore: systemcrack |
Forum: Applicazioni Office Windows Risposte: 10 |
Macro protezione foglio con password non funge Autore: xilofono |
Forum: Applicazioni Office Windows Risposte: 13 |
Esiste un riferimento relativo al foglio precedente? Autore: wallace&gromit |
Forum: Applicazioni Office Windows Risposte: 4 |
EXCEL - Estrazione nome file senza estensione da percorso Autore: Dylan666 |
Forum: Applicazioni Office Windows Risposte: 6 |
Problema stampa due pagine Excel su foglio A4 Autore: dipdip |
Forum: Applicazioni Office Windows Risposte: 11 |
Visitano il forum: Nessuno e 9 ospiti