Supportnet / Forum / Textverarbeitung
Makro in Word97 für das Speichern von Serienbriefen
Frage
Guten Tag zusammen.
Stehe hier vor einem echten Problem und hoffe das man mir hier weiterhelfen kann !
Also folgendes:
Ich habe ein Word Dokument bzw einen Serienbrief bestehend aus 140 Seiten.
Jede Seite holt sich Texte oder Daten aus einer Access-Datenbank
(zB mit { if { MERGEFIELD Daten01 } <> "" " {MERGEFIELD Daten01 }" ""} )
Jede Seite hat ausserdem eine Art Laufnummer bzw eine Dokument-Nummer die sich die jeweilige Seite auch aus der Datenbank holt (sie nennt sich in der Datenbank MBNR).
Jetzt brauche ich ein makro was Automatisch jede Seite "ALLEINE" aberspeichert und als Dokument name die Laufnummer benutzt.
zB wenn die Laufnummer 1242321 = 1242321.doc
Das Makro soll nur diese eine Seite speichern und dann zu der nächsten springen und dort dasselbe machen...und dann wieder zur nächsten so das ich am ende die 140 Seiten als seperate .doc Dokumente vorliegen habe.
Habe es hiermit versucht:
Sub test()
Dim nName As String, Pfad As String
nName = "MBNR"
Pfad = "C:\Daten\temp\blah\"
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = wdLastRecord
anzahl = .DataSource.ActiveRecord
flag = False
For Each x In .DataSource.DataFields
If x.Name = nName Then
flag = True
Exit For
End If
Next
.Destination = wdSendToNewDocument
For i = 1 To 10 ' anzahl
.DataSource.ActiveRecord = dsname = Pfad & "\" & _
.DataSource.DataFields(nName).Value & "_swe" & ".doc"
.DataSource.FirstRecord = 1
.DataSource.LastRecord = 3
.Execute
ActiveDocument.Range.Find.Execute findtext:="^b", replacewith:=""
Set fs = CreateObject("Scripting.FileSystemObject")
ActiveDocument.SaveAs FileName:=dsname, AddToRecentFiles:=False
Next i
.DataSource.FirstRecord = 1
End With
End Sub
Aber bei
.DataSource.ActiveRecord = dsname = Pfad & "\" & _
.DataSource.DataFields(nName).Value & "_swe" & ".doc"
bricht er immer ab und meldet einen laufzeitfehler
Brauche echt hilfe bin hier voll am verzweifeln =/
Vielen dank schonmal für die hilfe !!!!
Antwort 1 von Denjo2063
habe den fehler selber gefunden war ein fehler der groß und kleinschreibung.... =)
habe jetzt das problem das der jedes dokument was der erstellt hat geöffnet lässt.
Gibt es ein Befehl den ich am ende des Makros eintragen könnte der nach jedem Durchlauf das Dukument was er gerade erstellt hat auch wieder schließt ?
DANKE
habe jetzt das problem das der jedes dokument was der erstellt hat geöffnet lässt.
Gibt es ein Befehl den ich am ende des Makros eintragen könnte der nach jedem Durchlauf das Dukument was er gerade erstellt hat auch wieder schließt ?
DANKE
Antwort 2 von Guenter
Hallo,
hast Du mal versucht, ein Makro aufzuzeichnen, was ein Dokument schließt.
Das sollte doch gehen, oder?
Gruß
Günter
hast Du mal versucht, ein Makro aufzuzeichnen, was ein Dokument schließt.
Das sollte doch gehen, oder?
Gruß
Günter
Antwort 3 von Denjo2063
habe es schon herausgefunden mit
ActiveDocument.ActiveWindow.Close SaveChanges:=wdSaveChanges
jetzt benötige ich eine Abfrage in VB...es soll sich ein Eingabefeldfenster öffnen mit einer bitte eine Zahl einzugeben....habe das jetzt mit InputBox gemacht aber da steht jetzt immer nur Wahr oder Falsch anstatt dem Text
ActiveDocument.ActiveWindow.Close SaveChanges:=wdSaveChanges
jetzt benötige ich eine Abfrage in VB...es soll sich ein Eingabefeldfenster öffnen mit einer bitte eine Zahl einzugeben....habe das jetzt mit InputBox gemacht aber da steht jetzt immer nur Wahr oder Falsch anstatt dem Text

