Condividi tramite

Macro per stampare un area di stampa in pdf

Anonimo
2014-09-03T13:49:25+00:00

Buonasera a tutta la community,

come da titola avrei la necessità di associare una macro ad un pulsante. Attraverso

questa macro vorrei stampare una determinata area che va dalla cella A1 alla cella L43 del foglio in questione. Il nome del file deve essere preso dalla concatenazione

del contunuto presente nelle celle B1&"Riclassificato"&F1 (che si trovano all'interno dell'area

di stampa). Entrambe le celle (B1 e F1) alimentano il proprio contenuto attraverso formule (lo

specifico qualora avesse rilevanza per la determinazione della macro da utilizzare).

Tra le stampanti disponibili per convertire in pdf ho PDF creator (non come programma installato

ma come strumento utilizzato dal programma di archiviazione digitale) e poi un programma

acquistato (ScanSoft Pdf Create!).

Spero di aver reso tutte le informazioni occorrenti per rendere più semplice il vostro

"aiuto".

Vi ringrazio sin d'ora per la vostra attenzione e l'aiuto.

Fausto.

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

Risposta accettata dall'autore della domanda

Anonimo
2014-09-04T05:15:31+00:00

Ciao Fausto,

Non sono a conoscenza di PDF Create ma, utilizzando PDFCreator, prova qualcosa del

genere:

Alt-F11 per aprire l'editor di VBA

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

Alt-IM per 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, myPath As String

    Const sStr As String = "Riclassificato"                                   '<<==== Modifica

    Const primaCella As String = "B1"                                         '<<==== Modifica

    Const secondaCella As String = "F1"                                      '<<==== Modifica

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

    Const sFoglio As String = "Foglio1"                                       '<<==== Modifica

    Set WB = ThisWorkbook

    With WB

        myPath = .Path & Application.PathSeparator

        Set SH = .Sheets(sFoglio)

    End With

    With SH

        sFilename = .Range(primaCella).Value _

                    & sStr _

                    & .Range(secondaCella).Value _

                    & ".pdf"

        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

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

Alt-Q per chiudere l'editor di VBA e tornare a Excel. 

Assegna la procedura Tester al tuo pulsante

Prima di eseguire il codice, è necessario aggiungere un riferimento alla libreria PDFCreator come indicato nelle istruzioni che precedono il codice. Nel caso in cui non dovessi trovare la libreria PDFCreator, sarebbe necessario scaricare il programma PDFCreator:

http://www.pdfforge.org/pdfcreator/download

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-09-03T14:22:54+00:00

    <cut>

    Vi ringrazio sin d'ora per la vostra attenzione e l'aiuto.

    Fausto.

    Non ho capito una cosa. Perché hai scritto: "il nome del file deve essere preso ecc." ?

    Stiamo stampando fogli del file che conterrà il codice o dobbiamo aprire altri file?

    Grazie.

    Ciao Mauro, speravo in un tuo aiuto. Dunque cerco di essere più chiaro;

    facendo la stampa in pdf ad un certo punto si apre la finestra per la scelta del percorso dove salvare e del nome da dare al file pdf.

    La macro per la stampa in pdf fa riferimento al foglio "P&L" del mio file.

    Il nome che vorrei dare è il contenuto della cella B1 concatenato con la parola "Riclassificati" e con il contenuto della cella F1 del foglio "P&L",  nel quale è delimitata l'area di stampa (celle A1:L43).

    Spero stavolta di aver chiarito. Se ciò non bastasse ti posso mandare un immagine del foglio.

    Ti ringrazio in ogni caso.

    Fausto.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-09-03T14:08:02+00:00

    <cut>

    Vi ringrazio sin d'ora per la vostra attenzione e l'aiuto.

    Fausto.

    Non ho capito una cosa. Perché hai scritto: "il nome del file deve essere preso ecc." ?

    Stiamo stampando fogli del file che conterrà il codice o dobbiamo aprire altri file?

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento