Condividi tramite

Macro per stampare pdf

Anonimo
2013-02-02T21:17:38+00:00

Ciao a tutti.

Sto lavorando sulla possibilità di stampare direttamente in pdf.

Ho fatto una macro con queste istruzioni:

Application.ActivePrinter = "PDFCreator su Ne01:"

    ActiveWindow.SelectedSheets.

        "PDFCreator su Ne01:", Collate:=True

End Sub

Funziona tutto bene. Si clicca sul pulsante a cui è associata la macro e si apre la schermata di Pdf Creator. Vorrei, ma non so se è possibile, far avviare in automatico anche questa seconda fase (cioè far scrivere un nome e cliccare su stampa in PdfCreator). Voi pensate sia possibile o è troppo??? :-)

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
2013-03-07T08:33:58+00:00

Ciao Ricciardi Francesco,

la prima considerazione è che non riapri il post semplicemente perchè non lo hai mai chiuso.

Chiudere un post significa contrassegnare una delle risposte come ricevute e non mi sembra tu lo abbia fatto.

Per quanto riguarda la tua domanda:

devi memorizzare la stampante corrente prima di impostare ActivePrinter su PDFCreator.

Modifica questa macro nel seguente modo:


Sub StampaPdf()

'

' StampaPdF Macro

    Dim strActivePrinter As String

    blnStampa = True

    strActivePrinter = Application.ActivePrinter

    ThisWorkbook.Worksheets("Stampa").PrintOut ActivePrinter:="PDFCreator su NE01:"

    Application.ActivePrinter = strActivePrinter

End Sub


David

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

11 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-02-04T17:59:42+00:00

    Ciao Ricciardi Francesco,

    fai la stessa cosa di prima. La routine Workbook_BeforePrint che abbiamo creato blocca tutte le stampe tranne quelle che vengono avviate con una macro che imposta a True il valore della variabile pubblica blnStampa.

    Quindi è sufficiente che tu aggiunga tale istruzione a quella routine prima dell'istruzione per stampare. Per esempio:

     

    Sub StampaPdf() ' ' StampaPdF Macro ' Macro registrata il 04/02/2013 'blnStampa = True      ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="PDFCreator su Ne01:", PrintToFile:=True, Collate:=True, PrToFileName:="D:\Percorso\Nome che vuoi.pdf"  End Sub

    Grazie mille, Maurizio.

    Ora in effetti, la macro funziona.

    L'ho modificata secondo le mie esigenze:

    Sub StampaPdf()'' StampaPdF Macro' Macro registrata il 04/02/2013 '

    '    blnStampa = True    ThisWorkbook.Worksheets("Stampa").PrintOut ActivePrinter:="PDFCreator su Ne01:", PrintToFile:=True, Collate:=True, PrToFileName:="U:\Desktop\Onorari.pdf"    End Sub

    Ora, però, succede una cosa strana, nel senso che non compare la schermata di PdfCreator (quella, per intenderci, dove si inserisce solitamente il nome e si clicca su invio). Il file è creato direttamente sul desktop ma, se ci clicco sopra, mi dice che non può essere aperto perchè è un tipo di file non supportato o è danneggiato... :-(

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-02-04T17:40:48+00:00

    Ciao Ricciardi Francesco,

    fai la stessa cosa di prima. La routine Workbook_BeforePrint che abbiamo creato blocca tutte le stampe tranne quelle che vengono avviate con una macro che imposta a True il valore della variabile pubblica blnStampa.

    Quindi è sufficiente che tu aggiunga tale istruzione a quella routine prima dell'istruzione per stampare. Per esempio:

    Sub StampaPdf() ' ' StampaPdF Macro ' Macro registrata il 04/02/2013 'blnStampa = True      ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="PDFCreator su Ne01:", PrintToFile:=True, Collate:=True, PrToFileName:="D:\Percorso\Nome che vuoi.pdf"  End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-02-04T17:15:19+00:00

    Ciao Ricciardi Francesco,

    mi sa che alla tua istruzione manca un pezzo. Probabilmente intendi qualcosa del genere:

    • ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="PDFCreator su Ne01:" _

                              , PrintToFile:=True _

                              , Collate:=True _

                              , PrToFileName:="D:\Percorso\Nome che vuoi.pdf"

    Maurizio, scusami tantissimo.

    Ho provato ma i codici forse entrano in conflitto con l'altra macro di blocco della stampa.

    Ho associato questa macro ad un pulsante:

    Sub StampaPdf()'' StampaPdF Macro' Macro registrata il 04/02/2013 '    ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="PDFCreator su Ne01:", PrintToFile:=True, Collate:=True, PrToFileName:="D:\Percorso\Nome che vuoi.pdf"    End Sub

    Purtroppo mi compare il messaggio che è impedito stampare :-)

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-02-03T07:42:44+00:00

    Ciao Ricciardi Francesco,

    mi sa che alla tua istruzione manca un pezzo. Probabilmente intendi qualcosa del genere:

    • ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="PDFCreator su Ne01:" _

                              , PrintToFile:=True _

                              , Collate:=True _

                              , PrToFileName:="D:\Percorso\Nome che vuoi.pdf"

    La risposta è stata utile?

    0 commenti Nessun commento