Condividi tramite

Creare una macro per stampare con PDF Creator

Anonimo
2015-03-05T09:49:24+00:00

Buongiorno

Nel file excel, al foglio "Studio Grara" vorrei creare una macro, la quale dovrebbe stampare solo l'intervallo di celle A1:I47 , adattato alla larghezza della pagina (A4) con PDF Creator, permettendomi di scegliere successivamente dove e con che nome salvare il file pdf. Chiedo se è possibile eseguire questa operazione anche su altri pc sempre con Pdf Creator (senza avere il riferimento solo ed esclusivamente al mio pc).

Rimango in attesa e ringrazio fin da ora per la disponibilità.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

11 risposte

Ordina per: Più utili
  1. Anonimo
    2015-03-05T10:31:01+00:00

    Ciao argi2012,

    sì, è possibile. Visto però che con Excel 2013 puoi nativamente stampare pdf perché usare altro?

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2015-03-05T11:45:51+00:00

    Ciao argi2012,

    Si anche con Pdf Creator devo comunque selezionare l'area di stampa e l'adatta. Volevo fosse gestito automaticamente da Excel (2010 e 2013) C'è una soluzione al mio problema? 

    Oltre agli ottimi suggerimenti di Maurizio, prova qualcosa del genere:

    Alt-F11 per aprire l'editor di VBA

    Menu | StrumentiRiferimenti | Seleziona PDFCreator****| OK

    Alt-IMper inserire un nuovo modulo di codice

    Nel nuovo modulo vuoto, incolla il seguente codice:

    '==========>>

    Option Explicit

    '==========>>

    Public Sub Tester()

    '\ Inseririre riferimento alla libreria PDFCreator:

    '\ Menu | Strumenti | Riferimenti | PDFCreator

        Dim WB As Workbook

        Dim SH As Worksheet

        Dim Rng As Range

        Dim sFilename As String

        Dim sPath As String

        Dim vName As Variant

        Const sIntervallo As String = "A1:I47"                                  '<<==== Modifica

        Const sFoglio As String = "Studio Grara"                             '<<==== Modifica

        vname = Application.InputBox(Prompt:="Inserisci un nome per il file pdf", _

                                     Default:=ActiveSheet.Name, _

                                     Title:="NUOVO NOME")

        If vName = False Then

            Call MsgBox(Prompt:="Hai cancellato. Riprova!", _

                        Buttons:=vbCritical, _

                        Title:="MACRO TERMINATO!")

            Exit Sub

        Else

            If UCase(Right(vName, 4)) = ".PDF" Then

                sFilename = vName

            Else

                sFilename = vName & ".pdf"

            End If

        End If

        Set WB = ThisWorkbook

        With WB

            sPath = .Path & Application.PathSeparator

            Set SH = .Sheets(sFoglio)

        End With

        With SH

             Set Rng = .Range(sIntervallo)

            .PageSetup.PrintArea = Rng.Address

        End With

        Call PrintPDF(sFilename, WB, myPath)

    End Sub

    '---------->>

    Public Sub PrintPDF(sName As String, aWB As Workbook, sPath As String)

        Dim oPdf As PDFCreator.clsPDFCreator

        Dim sPrinter As String

        Set oPdf = New PDFCreator.clsPDFCreator

        With oPdf

            .cStart "/NoProcessingAtStartup"

            .cOption("UseAutosave") = 1

            .cOption("UseAutosaveDirectory") = 1

            .cOption("AutosaveDirectory") = sPath

            .cOption("AutosaveFilename") = sName

            .cOption("AutosaveFormat") = 0

            .cClearCache

            'aWB.PrintPreview

            aWB.PrintOut

            Do Until oPdf.cCountOfPrintjobs = 1

                DoEvents

            Loop

            .cPrinterStop = False

            Do Until .cCountOfPrintjobs = 0

                DoEvents

            Loop

            .cClose

        End With

    XIT:

        Set oPdf = Nothing

    End Sub

    '<<==========

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-03-05T11:25:23+00:00

    Si anche con Pdf Creator devo comunque selezionare l'area di stampa e l'adatta. Volevo fosse gestito automaticamente da Excel (2010 e 2013) C'è una soluzione al mio problema?

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-03-05T11:10:50+00:00

    Scusa ma siccome non lo conosco bene, vuoi dire che stampando con PDFCreator non devi selezionare l'area di stampa e l'adatta larghezza?

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2015-03-05T11:03:45+00:00

    Buongiorno Maurizio

    La mia richiesta era per stampare, anche con la versione di Excel 2010 con un pulsante (a cui ci assegno la macro) senza dover selezionare l'area di stampa e l'adatta alla larghezza. Se è possibile creare un pdf in modo alternativo sono ben disposto a provare per riuscire a stampare o salvare l'intervallo di celle selezionate.

    Ho provato a registrare una macro però stampa correttamente in Pdf Creator solo se la stampante selezionata in stampa è appunto Pdf Creator. Se cambio la stampante per stampare altri file la macro creata stampa con la nuova stampante selezionata e non più con Pdf Creator. 

    Spero di essermi spiegato

    Rimango in attesa

    Grazie della disponibilità

    La risposta è stata utile?

    0 commenti Nessun commento