Beste,
Geen tot weinig notie van VBA, doch desondanks naastig aan het proberen om gevonden codes op het internet aan te passen naar eigen behoefe.
Beoogd resultaat: het resultaat van een samenvoeging in WORD2010 splitsen en elk record individueel bewaren, op een vaste locatie op de server, met als naamgeving een veldnaam uit de dbase.
In WORD2003 maakt ik gebruik van de tool van gmayor (werkt subliem, doch nu gedownloaded voor 2010 en werkt niet).
Op stackoverflow wel een code gevonden van Soren Francis (http://stackoverflow.com/questions/...h-a-merge-field-as-the-name/17511768#17511768)
Dit doet uitstekend wat ik wens, ECHTER voor maar één enkel record (hetgeen waarop men staat).
Ik zou in één beweging graag alle records bewaard hebben en bijkomend, als het document reeds bestaat in de directory, dat dit zonder meer zou overschreven worden.
Alvast dank voor jullie deskundig adviezen of oplossingen.
Hierna de code, zover als mogelijk reeds aangepast naar mijn behoefte.
Bekijk bijlage test.zip
Geen tot weinig notie van VBA, doch desondanks naastig aan het proberen om gevonden codes op het internet aan te passen naar eigen behoefe.
Beoogd resultaat: het resultaat van een samenvoeging in WORD2010 splitsen en elk record individueel bewaren, op een vaste locatie op de server, met als naamgeving een veldnaam uit de dbase.
In WORD2003 maakt ik gebruik van de tool van gmayor (werkt subliem, doch nu gedownloaded voor 2010 en werkt niet).
Op stackoverflow wel een code gevonden van Soren Francis (http://stackoverflow.com/questions/...h-a-merge-field-as-the-name/17511768#17511768)
Dit doet uitstekend wat ik wens, ECHTER voor maar één enkel record (hetgeen waarop men staat).
Ik zou in één beweging graag alle records bewaard hebben en bijkomend, als het document reeds bestaat in de directory, dat dit zonder meer zou overschreven worden.
Alvast dank voor jullie deskundig adviezen of oplossingen.
Hierna de code, zover als mogelijk reeds aangepast naar mijn behoefte.
Bekijk bijlage test.zip
Code:
Sub splitmacro()
'
' 1) Merges active record and saves the resulting document named by the datafield FileName"
' 2) Closes the resulting document, and (assuming that we return to the template)
' 3) advances to the next record in the datasource
'Søren Francis 6/7-2013
Dim DokName As String 'ADDED CODE
Dim firstname As String
Dim lastname As String
firstname = ActiveDocument.MailMerge.DataSource.DataFields("Voornaam").Value
lastname = ActiveDocument.MailMerge.DataSource.DataFields("Achternaam").Value
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
.LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
End With
' Merge the active record
.Execute Pause:=False
End With
' Save then resulting document. NOTICE MODIFIED filename
ActiveDocument.SaveAs2 FileName:="C:\Users\vermhans001\Documents\test\" + lastname + firstname + ".docx", FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=14
' Close the resulting document
ActiveWindow.Close
' Now, back in the template document, advance to next record
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
End Sub
Laatst bewerkt: