gelöst Automatische aktualisierung bei Serienbriefen in Word
Hallo, bin neu in diesem Forum, hoffe ihr könnt mir weiterhelfen.
Aufgabe: Ich soll über Word 07 einen Serienbrief erstellen. Der Serienbrief soll eine Einladung sein, über eine Textbox wird der Name dargestellt.
Je nachdem wie Kurz bzw. Lang der Name ist soll er entsprechend größer bzw. kleiner gemacht werden.
Dazu hab ich den unten stehen Programmcode benutzt, was auch prima funktioniert.
Problem: Das Problem was ich habe wenn ich einen Seriendruck starte und vorher das Makro ausgeführt habe, verändert das Makro nur die
Seite die akutell geöffnet ist die restlichen bleiben unverändert.
Ziel: Ziel ist dass, das Makro für jede Seite (Einladung) ausgeführt wird beim drucken.
info: Wenn man bei Word auf <Sendungen --> Fertigstellen und zusammenführen --> einzelne Dokumente bearbeiten> geht alle Seiten aufruft und
dann erst das Makro ausführt geht das aber bei einer großen Datenbank dauert das zu lang ca. 20h.
Je nachdem wie Kurz bzw. Lang der Name ist soll er entsprechend größer bzw. kleiner gemacht werden.
Dazu hab ich den unten stehen Programmcode benutzt, was auch prima funktioniert.
Problem: Das Problem was ich habe wenn ich einen Seriendruck starte und vorher das Makro ausgeführt habe, verändert das Makro nur die
Seite die akutell geöffnet ist die restlichen bleiben unverändert.
Ziel: Ziel ist dass, das Makro für jede Seite (Einladung) ausgeführt wird beim drucken.
info: Wenn man bei Word auf <Sendungen --> Fertigstellen und zusammenführen --> einzelne Dokumente bearbeiten> geht alle Seiten aufruft und
dann erst das Makro ausführt geht das aber bei einer großen Datenbank dauert das zu lang ca. 20h.
01.
Sub ScaleTextboxText()
02.
Dim shp As Shape
03.
For Each shp In ActiveDocument.Shapes
04.
If shp.TextFrame.HasText = True Then
05.
With shp
06.
' erst hochskalieren, falls die Textbox nicht ausgefüllt wird
07.
Do While .TextFrame.Overflowing = False
08.
.TextFrame.TextRange.Font.Size = .TextFrame.TextRange.Font.Size + 1
09.
Loop
10.
' herunterskalieren, falls die Textbox überfüllt wird
11.
Do While .TextFrame.Overflowing = True
12.
.TextFrame.TextRange.Font.Size = .TextFrame.TextRange.Font.Size - 1
13.
Loop
14.
15.
End With
16.
End If
17.
Next shp
18.
End Sub
1 Antwort
- LÖSUNG GUTEfrage schreibt am 02.11.2011 um 16:17:59 Uhr
LÖSUNG 02.11.2011 um 16:17 Uhr
Hallo,
warum soll der Name denn kleiner gemacht werden? Wenn ich einen Doppelnamen hätte, dann würde ich es bevorzugen, wenn dieser auch so auf der Einladung steht.
Wie wär es denn, anstatt der Textbox einen freien Platzhalter zu verwenden, der ganz "stupf" den Namen (so wie er in der Datenbank steht) an den dafür vorgesehenen Platz stellt.
Das Funktioniert sowohl bei einem Brief, als auch bei Briefumschlägen.
Dann braucht man auch kein Makro und auch nur die Daten "zusammenführen" und FERTIG.
Vielleicht hat´s ja weitergeholfen,
Gruß
warum soll der Name denn kleiner gemacht werden? Wenn ich einen Doppelnamen hätte, dann würde ich es bevorzugen, wenn dieser auch so auf der Einladung steht.
Wie wär es denn, anstatt der Textbox einen freien Platzhalter zu verwenden, der ganz "stupf" den Namen (so wie er in der Datenbank steht) an den dafür vorgesehenen Platz stellt.
Das Funktioniert sowohl bei einem Brief, als auch bei Briefumschlägen.
Dann braucht man auch kein Makro und auch nur die Daten "zusammenführen" und FERTIG.
Vielleicht hat´s ja weitergeholfen,
Gruß
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte