Generare da stampa unione più documenti .doc

Anonimo
2017-08-14T09:24:47+00:00

Buongiorno a tutti Vorrei poter generare, da stampa unione, tanti documenti in Word (quindi .doc) quanti sono i record selezionati. Ho notato che "finalizza e unisci" crea un unico file con le lettere di ciascun record e questo non è quello che serve a me. Vorrei chiedere se è possibile avere un suggerimento per compilare una macro in VBA, tenendo in mente che i file singoli devono avere il nome di uno specifico campo. Grazie a tutti!!

Microsoft 365 e Office | Word | 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
2017-08-14T15:06:41+00:00

Secondo me non hai bisogno di macro o di codice in quanto Stampa Unione ha la possibilità, in sede di merge, di effettuare scelte manuali di record o mediante filtri.

Scegli Lettere-->Inizio Stampa Unione-->Modifica elenco destinatari

Grazie Paolo, innanzitutto grazie per la gentile risposta, ma quella schermata permette solo di selezionare i record dai quali attingere i dati. A me serviva avere dei file Word distinti e separati, con il nome.file estratto da uno dei campi (p.es "cognome"). In ogni caso ho risolto con poche righe di VBA. Le pubblico perché potrebbero essere utili ad altre persone. A presto e grazie lo stesso!!

Public Sub Test2()

On Error GoTo ErrH

Dim objWdMailMerge  As Word.MailMerge

Dim lngRecNum       As Long

Dim strPath         As String

Dim strFilename     As String

    Application.ScreenUpdating = False

    strPath = "C:\Users\NOME UTENTE\CARTELLA DI DESTINAZIONE"

    Set objWdMailMerge = ThisDocument.MailMerge

    With objWdMailMerge

      .Destination = wdSendToNewDocument

      With .DataSource

        .ActiveRecord = wdLastRecord

        lngRecNum = .ActiveRecord

        .ActiveRecord = wdFirstRecord

        Do

          .FirstRecord = .ActiveRecord

          .LastRecord = .ActiveRecord

          strFilename = .DataFields("COGNOME").Value

          If Len(strFilename) Then

            strFilename = strPath & strFilename

            objWdMailMerge.Execute

            With ActiveDocument

              .SaveAs strFilename, wdFormatdoc, AddToRecentFiles:=False

              .Saved = True

              .Close

            End With

          End If

          If .ActiveRecord = lngRecNum Then Exit Do

          .ActiveRecord = wdNextRecord

        Loop

      End With

    End With

ExitProc:

    Application.ScreenUpdating = True

    Set objWdMailMerge = Nothing

    Exit Sub

ErrH:

    MsgBox Err.Description

    Resume ExitProc

End Sub

La risposta è stata utile?

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

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2017-08-14T14:41:46+00:00

    Secondo me non hai bisogno di macro o di codice in quanto Stampa Unione ha la possibilità, in sede di merge, di effettuare scelte manuali di record o mediante filtri.

    Scegli Lettere-->Inizio Stampa Unione-->Modifica elenco destinatari

    La risposta è stata utile?

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