Supportnet Computer
Planet of Tech

Supportnet / Forum / Textverarbeitung

Brauche Hilfe bei Word Makro Serienbrief in Datei





Frage

Hallo, Ich habe u.a. Makro, das jeden Datensatz eines Serienbriefs in ein einzelne Word-Datei speichert . Stammt von [url]http://mypage.bluewin.ch/reprobst/WordFAQ/MMAuto.htm#MMAuto09[/url] Das funzt auch prima. Frage1: Nun möchte aber am Ende keine Doc-Dateien erzeugen sondern txt-Dateien. Frage2: Bei jedem Datensatz öffnet sich bei Ausführen des Makros ein Word-Fenster dass sich zwar gleich wieder schliesst aber nervt. Wie kann man dieses minimiert ausführen lassen? Ich lese jetzt seit 3 Stunden die VB-Hilfe und komm net weiter. Kann mir bitte jemand helfen? [code]Sub JederDatensatzInEineEigenstaendigeDatei_2() With ActiveDocument.MailMerge If .MainDocumentType = wdNotAMergeDocument Then MsgBox "Das aktive Dokument ist kein Seriendruckhauptdokument." Exit Sub End If .DataSource.ActiveRecord = wdLastRecord Anzahl = .DataSource.ActiveRecord If Anzahl = 0 Then MsgBox "Es wurden keine Datensätze gefunden." Exit Sub End If flag = False For Each x In .DataSource.DataFields If x.Name = Schluessel Then flag = True Exit For End If Next If flag = False Then Q = Chr(34) MsgBox "Das nominierte Feld " & Q & Schluessel & Q & _ " existiert nicht in der Datenquelle." Exit Sub End If .Destination = wdSendToNewDocument For i = 1 To Anzahl .DataSource.ActiveRecord = i dsname = Verzeichnis & "\" & Praefix & _ .DataSource.DataFields(Schluessel).Value & ".doc" .DataSource.FirstRecord = i .DataSource.LastRecord = i .Execute ActiveDocument.Range.Find.Execute FindText:="^b", ReplaceWith:="" ActiveDocument.SaveAs FileName:=dsname, AddToRecentFiles:=False ActiveDocument.Close Next i .DataSource.FirstRecord = 1 ´be smart End With End Sub [/code] greetz tom

Antwort 1 von gutefrage

Problem gelöst (Änderungen fett):

    .DataSource.DataFields(Schluessel).Value & ".txt"
      .DataSource.FirstRecord = i
      .DataSource.LastRecord = i
      .Execute
      ActiveDocument.Range.Find.Execute FindText:="^b", ReplaceWith:=""
      ActiveDocument.SaveAs FileName:=dsname, FileFormat:=wdFormatText, AddToRecentFiles:=False
      ActiveDocument.Close
    Next i
    .DataSource.FirstRecord = 1 ´be smart
  End With
End Sub


trotzdem danke:-)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: