Moderatori: Anthony47, Flash30005
Quindi devi solo indicare di volta in volta in quale directory il file deve essere salvato; dove e' il problema?
- Codice: Seleziona tutto
PercF="C:\QualeDirectory"
NFile=Range("A1").Value & ".pdf"
Call macroPrintPDF1(PercF & "\", NFile)
Sub macroPrintPDF1Selec(ByVal PercF As String, ByVal NFile As String)
'
'QUESTA VERSIONE E' DA RICHIAMARE COME UNA FUNZIONE DA ALTRA MACRO
' Es Call macroPrintPDF1Selec ("C:\Documenti\","pippo.pdf")
'
'Dim objPDFCreator As PDFCreator.clsPDFCreator '>> Early Bind
Dim objPDFCreator '<<< Late Bind
On Error Resume Next
If Dir(PercF & NFile) = NFile Then Kill (PercF & NFile)
Shell "taskkill /f /im PDFCreator.exe", vbHide
Application.Wait (Now + TimeValue("0:00:02"))
On Error GoTo 0
'
'Set objPDFCreator = New PDFCreator.clsPDFCreator '>>>
Set objPDFCreator = CreateObject("PDFCreator.clsPDFCreator") '<<
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"
Selection.PrintOut Copies:=1, ActivePrinter:="PDFCreator" 'stampa "Selezione"
objPDFCreator.cPrinterStop = False
'attesa disponibilita' file finale
Do
DoEvents
Loop Until Dir(PercF & NFile) = NFile
Application.Wait (Now + TimeValue("0:00:02"))
'clear finale oggetto e kill processo
Set objPDFCreator = Nothing
Shell "taskkill /f /im PDFCreator.exe", vbHide
'
End Sub
Sub PrintF12()
Sheets(Sheets("Foglio2").Range("A2").Value).Select
Range(Sheets("Foglio2").Range("B2").Value).Select
PercF = Sheets("Foglio2").Range("C2").Value
NFile = Sheets("Foglio2").Range("D2").Value & ".pdf"
Call macroPrintPDF1Selec(PercF & "\", NFile)
Sheets(Sheets("Foglio2").Range("A3").Value).Select
Range(Sheets("Foglio2").Range("B3").Value).Select
PercF = Sheets("Foglio2").Range("C3").Value
NFile = Sheets("Foglio2").Range("D3").Value & ".pdf"
Call macroPrintPDF1Selec(PercF & "\", NFile)
End Sub
Sub Macro1()
'
' Macro1 Macro
' Macro registrata il 30/04/2015 da Giorgio
'
'
Dim NomeFile As String
Dim Percorso As String
Percorso = "C:\prova\"
NomeFile = ActiveSheet.Cells(66, 17).Value + ".pdf"
Call macroPrintPDF1Selec(Percorso, NomeFile)
End Sub
Sub macroPrintPDF1Selec(ByVal PercF As String, ByVal NFile As String)
Dim objPDFCreator As PDFCreator.clsPDFCreator '<<< Late Bind
On Error Resume Next
If Dir(PercF & NFile) = NFile Then
Kill (PercF & NFile)
End If
Shell "taskkill /f /im PDFCreator.exe", vbHide
Application.Wait (Now + TimeValue("0:00:02"))
On Error GoTo 0
Set objPDFCreator = CreateObject("PDFCreator.clsPDFCreator") '<<
With objPDFCreator
'.cStart "/NoProcessingAtStartup"
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = PercF
.cOption("AutosaveFilename") = NFile
.cOption("OutputFilename") = NFile
.cOption("AutosaveFormat") = 0
.cOption("FilenameSubstitutions") = NFile
.cOption("FilenameSubstitutionsOnlyInTitle") = True
'.cVisible = False
.cClearCache
End With
'Selection.PrintOut Copies:=1, ActivePrinter:="PDFCreator", IgnorePrintAreas:=True 'stampa "Selezione"
Sheets("prove").PrintOut From:=3, To:=6, Copies:=1, ActivePrinter:="PDFCreator", Collate:=True
objPDFCreator.cPrinterStop = False
'Do
' DoEvents
'Loop Until Dir(PercF & NFile) = NFile
'Application.Wait (Now + TimeValue("0:00:20"))
'Set objPDFCreator = Nothing
'Shell "taskkill /f /im PDFCreator.exe", vbHide
End Sub
Sub macroPrintPDF1FromTo(ByVal PercF As String, ByVal NFile As String, Optional ByVal myFrom As Long = 1, Optional ByVal myTo As Long = 999)
'
'QUESTA VERSIONE E' DA RICHIAMARE COME UNA FUNZIONE DA ALTRA MACRO
' Es Call macroPrintPDF1Selec ("C:\Documenti\","pippo.pdf", 1 , 3)
' Nell'esempio da 1 a 3 sono le pagine da stampare
' Se omessi, stampa da 1 a 999, cioe' praticamente tutte
'Dim objPDFCreator As PDFCreator.clsPDFCreator '>> Early Bind
Dim objPDFCreator '<<< Late Bind
On Error Resume Next
If Dir(PercF & NFile) = NFile Then Kill (PercF & NFile)
Shell "taskkill /f /im PDFCreator.exe", vbHide
'Application.Wait (Now + TimeValue("0:00:02"))
myWait (2)
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"
'Selection.PrintOut Copies:=1, ActivePrinter:="PDFCreator" 'stampa "Foglio"
ActiveSheet.PrintOut From:=myFrom, To:=myTo, Copies:=1, ActivePrinter:="PDFCreator", Collate:=True
objPDFCreator.cPrinterStop = False
'attesa disponibilita' file finale
Do
DoEvents
Loop Until Dir(PercF & NFile) = NFile
'Application.Wait (Now + TimeValue("0:00:05"))
myWait (4)
'clear finale oggetto e kill processo
Set objPDFCreator = Nothing
Shell "taskkill /f /im PDFCreator.exe", vbHide
'
End Sub
Sub myWait(myStab As Single)
'Attende N secondi:
Dim myStTiM As Single
'
myStTiM = Timer
Do 'wait myStab
DoEvents
If Timer > myStTiM + myStab Or Timer < myStTiM Then Exit Do
DoEvents: Loop
End Sub
Sub PrintNPagine()
'Richiama la macroPrintPDF1FromTo
'
Sheets("Foglio1").Select '<< Il Foglio da stampare
myfile = "pippo1.pdf"
Call macroPrintPDF1FromTo("C:\PROVA\pippo\", myfile, 2, 4) 'Stampa da pag 2 a pag 4
End Sub
Sub PrintNPagine()
'Richiama la macroPrintPDF1FromTo
'
myfile = ActiveSheet.Cells(66, 17).Value + ".pdf" 'Puo' essere utile usare Sheets("NomeFoglio") invece che Activesheet...
Sheets("prove").Select '<< Il Foglio da stampare
Call macroPrintPDF1FromTo("C:\prova\", myfile, 3, 6) 'Stampa da pag 3 a pag 6
End Sub
Torna a Applicazioni Office Windows
Macro modifica date scelta periodo Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 11 |
Supporto per sviluppo macro VBA Ordinare per data Autore: Carletto Ribolla |
Forum: Applicazioni Office Windows Risposte: 3 |
Macro per aprire file salvato su sharepoint Onedrive Autore: marcopont |
Forum: Applicazioni Office Windows Risposte: 2 |
Come interrompere macro sndPlaySound Autore: systemcrack |
Forum: Applicazioni Office Windows Risposte: 2 |
Visitano il forum: Marius44 e 11 ospiti