Discussion:
mailmerge bewaren in aparte bestanden
(te oud om op te antwoorden)
Boris
2004-06-22 18:01:33 UTC
Permalink
Hallo,

Situatieschets:
Ik heb een brief (1pag lang) en een excel met adresgegevens (816
records). Het lukt me om deze te mergen, te printen en te mailen.

Probleemomschrijving:
Het bewaren van de gemergede documenten verloopt niet naar wens.

Punt 1: Het lukt me om de brieven te bewaren in 1 worddoc (van 816
paginas lang), maar ik zou 816 worddocumenten willen hebben (van elk 1
pagina oftewel 1 brief lang).
Ik heb geprobeerd via de "merge to new document" en de "print to file"
features, maar geen van beiden geven het gewenste resultaat.

Punt 2: Als het mogelijk is om te bewaren in 816 documenten, dan
moeten er 816 bestandsnamen zijn (leve de logica :). Het zou erg fijn
zijn als een veld uit de excel (bvb dossiernummer) kan worden
opgenomen in de bestandsnaam. Het formaat waarin gesaved wordt mag
*.rtf of *.doc zijn, dat maakt niet echt uit.


Als het mogelijk is om dit op te lossen zonder VBA, dan graag zonder.
Als het niet anders kan, mag VBA er aan te pas komen, dan zoek ik wel
ergens een cursus "VBA voor beginners"


Alvast bedankt aan iedereen voor de tijd en moeite,
Boris
Erik
2004-06-22 19:54:02 UTC
Permalink
Mijn beste Boris,

als ik mij goed herinner kun je dit doen met Openoffice.org, een gratis
office suite. Zie www.openoffice.org

Erik
Post by Boris
Hallo,
Ik heb een brief (1pag lang) en een excel met adresgegevens (816
records). Het lukt me om deze te mergen, te printen en te mailen.
Het bewaren van de gemergede documenten verloopt niet naar wens.
Punt 1: Het lukt me om de brieven te bewaren in 1 worddoc (van 816
paginas lang), maar ik zou 816 worddocumenten willen hebben (van elk 1
pagina oftewel 1 brief lang).
Ik heb geprobeerd via de "merge to new document" en de "print to file"
features, maar geen van beiden geven het gewenste resultaat.
Punt 2: Als het mogelijk is om te bewaren in 816 documenten, dan
moeten er 816 bestandsnamen zijn (leve de logica :). Het zou erg fijn
zijn als een veld uit de excel (bvb dossiernummer) kan worden
opgenomen in de bestandsnaam. Het formaat waarin gesaved wordt mag
*.rtf of *.doc zijn, dat maakt niet echt uit.
Als het mogelijk is om dit op te lossen zonder VBA, dan graag zonder.
Als het niet anders kan, mag VBA er aan te pas komen, dan zoek ik wel
ergens een cursus "VBA voor beginners"
Alvast bedankt aan iedereen voor de tijd en moeite,
Boris
Joost Verdaasdonk
2004-06-23 17:29:02 UTC
Permalink
Hai Boris, :D

Zonder VBA ONMOGELIJK! (dus daar gaan we dan ;-) )

Je hebt een document welke reeds gekoppeld is aan een gegevensbestand? (klopt)
(of te wel de inhoud van de eerste gegevensreeks van het samenvoegbestand is zichtbaar)

Open dit bestand (Wizard samenvoegen sluiten)
Toets ALT+F11
Kies Invoegen/Module (er komt rechts een code venster in beeld)
Plak hier deze code:

Option Explicit

Sub SaveEachDocument()
Dim x As String

Application.DisplayAlerts = False
Application.ScreenUpdating = False

x = "C:\Test\" 'dit pad aanpassen aan de map waar de docs inmoeten!

With ActiveDocument.MailMerge.DataSource
ActiveDocument.SaveAs x & " " & .DataFields("Nummer").Value & ".doc"
.ActiveRecord = 1

Do
.ActiveRecord = wdNextRecord
ActiveDocument.SaveAs x & " " & .DataFields("Nummer").Value & ".doc"

Loop Until .ActiveRecord = .RecordCount

End With

ActiveDocument.Close
Application.DisplayAlerts = True
End Sub

Er staat in de code twee keer: DataFields("Nummer").
Deze moet veranderd worden! (2 keer)
Nummer is de naam van het veld Nummer. (dit moet jij veranderen door de veldnaam: dossiernummer!)
Let op druk ALT+F9 in het document om de veldnaam te controleren in de veldcode.

Sla het werk op.
Sluit de visual basics editor je bent nu weer in Word.

Sla het document op met opslaan als, als documentsjabloon. (dit om code in de nieuw te maken documenten te voorkomen!)
Je kunt nu met bestand nieuw het sjabloon oproepen.

Nu wordt er een nieuw document gemaakt op basis van het sjabloon.

Toets ALT+F8 en kies de macro: SaveEachDocument en kies uitvoeren.

Lees alles even goed door en probeer het even op je gemak.
Laat maar horen of het gelukt is of niet?

Enjoy! ;)
--
Groetjes,
____________
Joost Verdaasdonk
M.O.S. MASTER

*****Laat weten of u geholpen bent, meldt uw vraag a.u.b. afgehandeld?*****
Post by Boris
Hallo,
Ik heb een brief (1pag lang) en een excel met adresgegevens (816
records). Het lukt me om deze te mergen, te printen en te mailen.
Het bewaren van de gemergede documenten verloopt niet naar wens.
Punt 1: Het lukt me om de brieven te bewaren in 1 worddoc (van 816
paginas lang), maar ik zou 816 worddocumenten willen hebben (van elk 1
pagina oftewel 1 brief lang).
Ik heb geprobeerd via de "merge to new document" en de "print to file"
features, maar geen van beiden geven het gewenste resultaat.
Punt 2: Als het mogelijk is om te bewaren in 816 documenten, dan
moeten er 816 bestandsnamen zijn (leve de logica :). Het zou erg fijn
zijn als een veld uit de excel (bvb dossiernummer) kan worden
opgenomen in de bestandsnaam. Het formaat waarin gesaved wordt mag
*.rtf of *.doc zijn, dat maakt niet echt uit.
Als het mogelijk is om dit op te lossen zonder VBA, dan graag zonder.
Als het niet anders kan, mag VBA er aan te pas komen, dan zoek ik wel
ergens een cursus "VBA voor beginners"
Alvast bedankt aan iedereen voor de tijd en moeite,
Boris
Boris
2004-06-24 17:33:11 UTC
Permalink
On Wed, 23 Jun 2004 10:29:02 -0700, "Joost Verdaasdonk"
Post by Joost Verdaasdonk
Hai Boris, :D
Zonder VBA ONMOGELIJK! (dus daar gaan we dan ;-) )
knipknip
Joost,

Eerst en vooral dank voor het antwoord.
Ik heb geprobeerd om uit te voeren wat jij hebt voorgesteld, maar ben
er niet in geslaagd om het te laten werken.

Tot het moment van uitvoeren van de macro loopt volgens mij alles
juist. Maar bij het uitvoeren van de macro krijg ik een runtime error
(5125) die zegt dat de gekozen bestandsnaam ongeldig is.

Ik denk dat het probleem zich hier situeert:

With ActiveDocument.MailMerge.DataSource
ActiveDocument.SaveAs x & " " & .DataFields("dossier").Value & ".doc"
.ActiveRecord = 1

Je stelt dat ik in word de veldnaam moet verifiëren. Daar staat het
volgende:
{ MERGEFIELD "dossier" }

Ik heb het volgende geprobeerd:
1) ActiveDocument.SaveAs x & " " & .DataFields("dossier").Value &
".doc"
2) ActiveDocument.SaveAs x & " " & .DataFields(dossier).Value & ".doc"
3) ActiveDocument.SaveAs x & " " & .DataFields("{ MERGEFIELD "dossier"
}").Value & ".doc"
4) ActiveDocument.SaveAs x & " " & .DataFields(MERGEFIELD
"dossier").Value & ".doc"

Maar telkens een bericht dat het niet werkt. Soms zelfs een
compilatiefout.

Kan je zeggen wat ik fout doe?

Vriendelijke groeten,
Boris
Boris
2004-06-24 18:41:19 UTC
Permalink
On Thu, 24 Jun 2004 10:46:02 -0700, "Joost Verdaasdonk"
Post by Joost Verdaasdonk
Hai Boris, :D
Graag gedaan!
Maar uhm aan een gedeeltelijke code kan ik niets zien. (Sowie)
Wil jij even de complete code plaatsen. ;)
--Joost--verdaasdonk--At-Home-nl) Verwijder de tussenstreepjes.
Ps dit is dus niet mijn mailadres!
See Yah
Joost,


ok, hier de volledige code zoals ik ze de laatste keer heb proberen
uitvoeren:


Option Explicit

Sub SaveEachDocument()
Dim x As String

Application.DisplayAlerts = False
Application.ScreenUpdating = False

x = "C:\Test\" 'dit pad aanpassen aan de map waar de docs inmoeten!

With ActiveDocument.MailMerge.DataSource
ActiveDocument.SaveAs x & " " & .DataFields("dossier").Value & ".doc"
.ActiveRecord = 1

Do
.ActiveRecord = wdNextRecord
ActiveDocument.SaveAs x & " " & .DataFields("dossier").Value & ".doc"

Loop Until .ActiveRecord = .RecordCount

End With

ActiveDocument.Close
Application.DisplayAlerts = True
End Sub



en de lijn uit mijn worddoc:
dossier n° : { MERGEFIELD "dossier" }
Met >> { MERGEFIELD "dossier" } << in de grijze veldbalk

ter info:
ik werk met office 2002 en het veld in de excel is een number (het
dossiernummer is een getal van 12 cijfers (zonder streepjes)

Mailen mag ook, je kan me bereiken op dekristof bij yahoo.com

Alvast bedankt,
Boris



En nu even gaan supporteren voor Portugal lol :)
Boris
2004-06-25 17:15:28 UTC
Permalink
On Fri, 25 Jun 2004 08:43:56 -0700, "Joost Verdaasdonk"
Post by Joost Verdaasdonk
Hai Boris, :D
Voor dat ik ga mailen. (eventueel morgen)
Heb jij een map staat op de C schijf die Test heet???
Haal de dubbele puntjes weg bij ..ActiveRecord. (moet 1 puntje zijn)
Enjoy! ;)
Joost,

Nope ik heb geen map c:\Test ik veronderstelde dat als die niet
bestond, die zou aangemaakt worden. Ik zal de map maken en de puntjes
weghalen, en dan zal ik maandag laten weten of het nu wel werkt.

Groetjes,
Boris
Joost Verdaasdonk
2004-06-26 17:06:02 UTC
Permalink
Hai Boris, :D

Nee hoor deze map wordt niet automatisch toegepast...;) (daarom stond ook in de code dat je het pad aan moest passen)

Het had overigens met toevoegen van MkDir wel gekund.

Ben benieuwd of het maandag goedkomt...

See Yah! ;)
--
Groetjes,
________________
Joost Verdaasdonk
M.O.S. MASTER
Post by Boris
On Fri, 25 Jun 2004 08:43:56 -0700, "Joost Verdaasdonk"
Post by Joost Verdaasdonk
Hai Boris, :D
Voor dat ik ga mailen. (eventueel morgen)
Heb jij een map staat op de C schijf die Test heet???
Haal de dubbele puntjes weg bij ..ActiveRecord. (moet 1 puntje zijn)
Enjoy! ;)
Joost,
Nope ik heb geen map c:\Test ik veronderstelde dat als die niet
bestond, die zou aangemaakt worden. Ik zal de map maken en de puntjes
weghalen, en dan zal ik maandag laten weten of het nu wel werkt.
Groetjes,
Boris
t***@gmail.com
2018-09-02 19:59:34 UTC
Permalink
Een waterkansje dat deze thread nog actief is? :-)

Ik heb een zeer gelijkaardig probleem, maar ik krijg de macro ook niet aan de praat...
Lees verder op narkive:
Loading...