Generare da stampa unione più documenti pdf

Anonimo
2012-12-12T19:27:39+00:00

Ho fatto una stampa unione (xls+word) al fine di generare fatture.

adesso dovrei per ogni fattura generare un pdf e nominare il relativo pdf, al fine di inviarla al cliente.

Questa procedura per le 40 fatture è comunque onerosa in quanto dovrei per ogni singola fattura stamparla in pdf salvarla sul dekstop e naturalmente nominarla secondo determinati criteri.

E' possibile dal documento di stampa unione generare in automatico le 40 fatture in formato pdf e possibilmente nominare i file secondo determinati criteri?

es.

fatt-30-12-dicembre-2012-cliente-rossi.pdf

Grazie!

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
2012-12-13T00:32:02+00:00

Ciao RichyVC

Intendi qualcosa del genere?

' Modulo1 - Modulo

'

Option Explicit

Public Sub Test()

On Error GoTo ErrH

Dim mm As Word.MailMerge

Dim i

    Application.ScreenUpdating = False

    Set mm = ThisDocument.MailMerge

    With mm

      .Destination = wdSendToNewDocument

      With .DataSource

        For i = 1 To .RecordCount

          .FirstRecord = i

          .LastRecord = i

          mm.Execute

          With Application.ActiveDocument

            .SaveAs "D:\Percorso" & Format(i, "0000") _

                  , wdFormatPDF _

                  , AddToRecentFiles:=False

            .Saved = True

            .Close

          End With

        Next

      End With

    End With

ExitProc:

    Application.ScreenUpdating = True

    Set mm = Nothing

    Exit Sub

ErrH:

    MsgBox Err.Description

    Resume ExitProc

End Sub

La risposta è stata utile?

30+ persone hanno trovato utile questa risposta.
0 commenti Nessun commento

40 risposte aggiuntive

Ordina per: Meno recente
  1. Anonimo
    2013-01-30T17:34:34+00:00

    Ciao Marizio,

    Grazie per la risposta anche se la leggo solo adesso.

    Scusa ma dove devo incollare il tuo codice all'interno di word per vedere e mi genera correttamente le 40 fatture?

    Grazie ancora!

    RichyVC

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-01-30T18:03:57+00:00

    Ciao RichyVC,

    fai così:

    1. Copia il codice che ho postato, Da:

    ' Modulo1 - Moduloa:

    End Sub 2. Apri una copia deldocumento di stampa unione 3. ALT+F11 4. Inserisci

    Modulo 5. CTRL+a (per selezionare l'eventuale testo già presente) 6. CTRL+V (cioè incolla) 7. Sostituisci il mio percorso per i file pdf:

    "D:\Percorso"

    con il tuo 8. Debug

    Compila Project 9. File

    Salva <nome_del_documento> 10. ALT+F11 11. ALT+F8 12. Seleziona la macro Test

    [ Esegui ]

    La risposta è stata utile?

    30+ persone hanno trovato utile questa risposta.
    0 commenti Nessun commento
  3. Anonimo
    2013-02-04T19:49:44+00:00

    Grazie Maurizio,

    Funziona alla perfezione!

    Solo una cosa attualmente mi salva le fatture e le nomina tutte 0001.pdf, 0002.pdf etc..

    Se invece volessi che il nome delle fatture coincida ad al campo F del file XLS appartenente al record della propria fattura cosa occorre fare?

    Grazie!

    Riccardo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-02-05T06:18:55+00:00

    Ciao RichyVC,

    prima di tutto quel campo F dovrà essere compreso fra quelli della stampa unione. Per rifarci al tuo esempio iniziale di nome di documento:

    • fatt-30-12-dicembre-2012-cliente-rossi.pdf

    ipotizzando la presenza dei tre campi di stampa unione:

    • RagSoc
    • FattNum
    • FattData

    potresti aggiungere la variabile di tipo stringa e di nome "s" alle definizioni iniziali della routine, così:

    • Dim mm As Word.MailMerge

    Dim i As Long

    Dim s As String

    quindi la parte iniziale del blocco di istruzioni per il salvataggio in formato pdf da così:

    • With Application.ActiveDocument

                .SaveAs "D:\Percorso" & Format(i, "0000") _

                      , wdFormatPDF _

                      , AddToRecentFiles:=False

    potrebbe diventare così:

    • s = "D:\Percorso"

                s = s & "Fatt-"

                s = s & Format$(.DataFields(.FieldNames("FattNum")).Value _

                              , "0")

                s = s & "-"

                s = s & Format$(.DataFields(.FieldNames("FattData")).Value _

                              , "dd-mmmm-yyyy")

                s = s & "-cliente-"

                s = s & .DataFields(.FieldNames("RagSoc")).Value

                With Application.ActiveDocument

                  .SaveAs s _

                        , wdFormatPDF _

                        , AddToRecentFiles:=False

    La risposta è stata utile?

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