m54-b Creative Commons License 2022.09.22 0 0 36665

Szerintem ez a végleges megoldás, aminél már csak szebbet lehet készíteni.

 

Így néz ki az Excel

 

 

Ez benne a makró:

 

Sub korlevel()

Dim wordnev(3) As String
wordnev(1) = "korlevel-1.docm"
wordnev(2) = "korlevel-2.docm"
wordnev(3) = "korlevel-3.docm"
utvonal = ActiveWorkbook.Path
utvonal = utvonal & "\"
adatok = ActiveWorkbook.FullName

For i = 1 To 3
    strfilename = utvonal & wordnev(i)
    strFileExists = Dir(strfilename)

   If strFileExists = "" Then
        MsgBox "Nem található a " & strfilename
        hiba = True
   End If
Next i
  If hiba Then Exit Sub
 
For i = 1 To 3

Set wordapp = CreateObject("Word.Application")
wordapp.Visible = True
Set worddoc = wordapp.Documents.Open(utvonal & wordnev(i))
'wordapp.Activate
With worddoc
    .MailMerge.OpenDataSource (adatok), Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;" & _
        "Data Source=StrMMSrc;Mode=Read;Extended Properties=""HDR=YES;IMEX=1"";", _
        SQLStatement:="SELECT * FROM `Munka1$`", SubType:=wdMergeSubTypeAccess
    .MailMerge.HighlightMergeFields = True
    .MailMerge.ViewMailMergeFieldCodes = False
    .MailMerge.DataSource.ActiveRecord = wdLastDataSourceRecord
End With
wordapp.Run "korlevel_befejez"
Set worddoc = Nothing
Set wordapp = Nothing
DoEvents
Next i

MsgBox ("Kész!")

End Sub

 

Ez a Word docm

 

 

Benne a makró:

 

Sub korlevel_befejez()
'
 ez_a_doc = ActiveDocument.FullName

    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = 1
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
    
Documents(ez_a_doc).Close SaveChanges:=wdDoNotSaveChanges

End Sub

 

A három körlevél létrehozásakor mindegyikbe ez a makró kerül.

Adatforrásnak az Excel fájlt kell megadni.

Beszúrni a megfelelő mezőket.

 

A piros nyíllal jelölt helyre a következőt:

 

 

 

 

"Mezőnév" az aktuális dokumentumhoz tartozó (Excel) oszlop, ami alapján szűrünk.

 

 

 

Remélem érthetően írtam. Ha kell közzéteszem a mintáimat.

Előzmény: Sánta Kutya (SK) (36641)