Dokument-Inhalt in anderes Dokument kopieren per VBA

03/08/2014 - 21:45 von Herr Mann | Report spam
Hallo, erneut bitte ich um kundige Hilfe.
Ich habe ein Zeugnis-Formular als Word-Dokument vorliegen, ich fülle aus der Datenbank für jeden Datensatz die Werte ein und kopiere den Inhalt der gesamten Datei inklusive Formatierung in ein neues, leeres Dokument. Sozusagen Serien-Druck selbst gemacht.
Das klappt mit einem Zeugnis-Formluar DIN-A4, einspaltig und dem Befehl:

AusdrucksDoc.Range(AusdrucksDoc.Range.End_ - 1, AusdrucksDoc.Range.End_).FormattedText = FormularDoc.Range.FormattedText

sehr gut.

Nun habe ich aber ein weiteres Zeugnis-Formular als Word-Dokument mit 2 Seiten (für doppelseitigen Druck), DIN-A3, zweispaltig.

mit
AusdrucksDoc.PageSetup.PageWidth = FormularDoc.PageSetup.PageWidth
AusdrucksDoc.PageSetup.PageHeight = FormularDoc.PageSetup.PageHeight
AusdrucksDoc.PageSetup.Orientation = FormularDoc.PageSetup.Orientation
AusdrucksDoc.PageSetup.TopMargin = FormularDoc.PageSetup.TopMargin
AusdrucksDoc.PageSetup.LeftMargin = FormularDoc.PageSetup.LeftMargin
AusdrucksDoc.PageSetup.RightMargin = FormularDoc.PageSetup.RightMargin
AusdrucksDoc.PageSetup.BottomMargin = FormularDoc.PageSetup.BottomMargin

bekomme ich in AusdrucksDoc eine DIN-A3 Seite im Querformat. Jedoch werden die beiden TextSpalten von FormularDoc nicht nebeneinander auf die Seite gesetzt, sondern für jede TextSpalte wird eine neue Seite aufgemacht. Text-Zeilen, die in FormularDoc innerhalb einer TextSpalte umgebrochen werden, werden in AusdrucksDoc über die gesamte Seitenbreite geschrieben.

Frage: Welche weiteren Parameter von PageSetUp muss ich noch an AusdrucksDoc übergeben, um beide TextSpalten nebeneinander auf die Seit zu kopieren?
Oder geht es vielleicht noch einfacher?

besten Gruß, Christian Hahn.
 

Lesen sie die antworten

#1 Bernhard Sander
04/08/2014 - 10:35 | Warnen spam
Hallo Christian,

AusdrucksDoc.Range(AusdrucksDoc.Range.End_ - 1, AusdrucksDoc.Range.End_).FormattedText = FormularDoc.Range.FormattedText




Probiers mal mit dieser Ergànzung:
(Die linke Seite soll über FormularDocLinkeSeite und die rechte Seite über FormularDocRechteSeite ansprechbar sein!)

AusdrucksDoc.Range(AusdrucksDoc.Range.End - 1, AusdrucksDoc.Range.End_).FormattedText = FormularDocLinkeSeite.Range.FormattedText

AusdrucksDoc.Range(AusdrucksDoc.Range.End - 1, AusdrucksDoc.Range.End).InsertBreak type:=wdColumnBreak

AusdrucksDoc.Range(AusdrucksDoc.Range.End - 1, AusdrucksDoc.Range.End).FormattedText = FormularDocRechteSeite.Range.FormattedText



NB: ich habe die Unterstriche nach .End gelöscht. .End_ ist nichts, was in Word eingebaut wàre.

Gruß
Bernhard Sander

Ähnliche fragen