Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Excel Tabelle als Datenquelle für Serienbrief

1,017 views
Skip to first unread message

Peter Wenzel

unread,
Dec 7, 2007, 9:30:00 PM12/7/07
to
Hallo NG!

Da ich nicht weiß ob ich hier richtig bin, möchte ich mich für mein Crossposting entschuldigen!

Zum Problem:

Ich habe eine Exceltabelle die als Datenquelle für einen Serienbrief dient.
Diese Tabelle wird über ein VBA-Makro erstellt und dieses Makro soll als letztes Word mit dem
entsprechenden Dokument öffnen.
Den Word Aufruf habe ich so formuliert:
CreateObject("Word.application").Documents.Open("c:\test.doc").Application.Visible = True

Alles klappt soweit ganz gut bis auf dass einige Datenfelder nicht richtig angezeigt werden.
Z.B. Datum statt TT.MM.JJJ als MM.TT.JJJJ obwohl im Serienbrief ein Formatschalter gesetzt ist.
Außerdem werden zwei numerische Felder nicht richtig angezeigt, d.h. sie zeigen falsche Werte.

Dann ist mir noch aufgefallen, dass in der Serienbrief-Symbolleiste die alle Felder inaktiv sind.

Ich denke die meisten Auffälligkeiten zeigen Richtung Word, der Grund weshalb ich trotzdem auch im
Excelforum poste ist, vielleicht stimmt schon der Aufruf von Word im Excel-Makro nicht.

Ich bin euch, wie immer, für jede Hilfe dankbar.


Gruß
Peter

--
Info:
Office 2003 Prof. SP 3
Win XP Prof. SP 2
------------------------------------------------------------------------------
Antworten bitte nur in diese NG!
Die Mailadresse existiert, die Nachrichten werden jedoch automatisch gelöscht.

Thomas Ramel

unread,
Dec 8, 2007, 2:19:20 AM12/8/07
to
Grüezi Peter

Peter Wenzel schrieb am 08.12.2007

> Ich habe eine Exceltabelle die als Datenquelle für einen Serienbrief dient.

Mit welcher Office-Version arbeitest Du?

> Diese Tabelle wird über ein VBA-Makro erstellt und dieses Makro soll als letztes Word mit dem
> entsprechenden Dokument öffnen.
> Den Word Aufruf habe ich so formuliert:
> CreateObject("Word.application").Documents.Open("c:\test.doc").Application.Visible = True
>
> Alles klappt soweit ganz gut bis auf dass einige Datenfelder nicht richtig angezeigt werden.
> Z.B. Datum statt TT.MM.JJJ als MM.TT.JJJJ obwohl im Serienbrief ein Formatschalter gesetzt ist.
> Außerdem werden zwei numerische Felder nicht richtig angezeigt, d.h. sie zeigen falsche Werte.

Ab Office 2002 wurde die Standard-Verbindung zwischen Word und Excel auf
ODBC geändert, was die genannten Effekte zur Folge hat - leider.

Hier ein Auszug aus der (leider momentan nicht verfügbaren) WordFAQ:

"Importweise der Datenquelle beim Seriendruck beeinflussen"

Wie bereits erwähnt, wählt der Seriendruck-Assistent - solange Sie nicht
eingreifen - eine Standardmethode beim Anhängen der Datenquelle, um die
Daten nach MS Word zu übertragen. Bei den Word-Versionen Word 97 und
Word2000 ist das meistens DDE, ab Word 2002 (XP) dagegen OLEDB.

Im Folgenden wird beschrieben, wie Sie selbst darüber bestimmen können,
welche Importweise für das Anziehen der Daten bei Ihrem Seriendruck, zur
Anwendung kommen soll.

Bevor Sie den Seriendruck-Assistenten aufrufen, müssen Sie die Option
Extras - Optionen… - Allgemein - Konvertierung beim Öffnen bestätigen
aktivieren. Wenn diese Option eingeschaltet ist, werden Sie im Verlaufe des
Vorganges die Möglichkeit haben, die Importweise zu bestimmen.

Sollte bereits ein Seriendruckhauptdokument vorliegen, dann lassen Sie sich
nach der Aktivierung der genannten Option, die Symbolleiste mir dem Namen
Seriendruck anzeigen. Klicken Sie anschliessend in dieser Symbolleiste auf
die Schaltfläche Datenquelle öffnen und öffnen Sie in der Folge die
Datenquelle nochmals.

1.
Öffnen Sie das Seriendruckhauptdokument oder erstellen Sie ein solches.

2.
Wählen Sie vom Hauptmenü Extras - Seriendruck….

3.
Klicken Sie im nun erschienen Seriendruck-Manager auf Datenquelle
importieren - Datenquelle öffnen….

4.
Aktivieren Sie das Kontrollkästchen mit der Bezeichnung Importweise
Auswählen Word 97 bzw. Import wählen Word2000.

5.
Sie können nun die gewünschte Datenquelle öffnen. Allenfalls müssen Sie den
Eintrag im Auswahlfeld Dateityp: noch ändern, damit auch Excel- und
Access-Dateien angezeigt werden.

6.
Dank der Option Import wählen, wird in der Folge ein zusätzlicher Dialog
angezeigt, in welchem Sie typischerweise bei einer Excel-Datenquelle
zwischen Microsoft Excel-Arbeitsblatt über Konverter, MS Excel-Arbeitsblatt
über DDE und Excel-Dateien über ODBC bzw., bei einer Access-Datenquelle
zwischen Access-Datenbanken über DDE und Microsoft Access-Datenbanken über
ODBC wählen können.

Wähle hier dann die DDE-Verbindungsart, dann klappt es mit der Datstellung
der Werte und des Datums.

> Dann ist mir noch aufgefallen, dass in der Serienbrief-Symbolleiste die alle Felder inaktiv sind.

Vielleicht könntest Du die Erzeugung des Word-Objektes und das öffnen der
Datei in zwei Schritten vornehmen. Dann hast Du ein eigenes Objekt für das
Word-Dokument und kannst dieses komfortabler steuern.


Mit freundlichen Grüssen
Thomas Ramel

--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-2]
Microsoft Excel - Die ExpertenTipps

Lisa Wilke-Thissen

unread,
Dec 8, 2007, 2:27:24 AM12/8/07
to
Guten Morgen Thomas,

"Thomas Ramel" schrieb im Newsbeitrag
news:jfiv6be3m6zd$.1pwk0rbx0jiqn$.dlg@40tude.net...

> Mit welcher Office-Version arbeitest Du?

ich ärgere mich auch, das die wichtigsten Angaben immer erst zum Schluss
erscheinen, im vorliegenden Fall Office 2003.

> Ab Office 2002 wurde die Standard-Verbindung
> zwischen Word und Excel auf ODBC geändert,

OLEDB. ODBC könnte man wählen.

--
Viele Grüße

Lisa
MS MVP Word
Microsoft Excel - Die Expertentipps:
http://tinyurl.com/cmned

Thomas Ramel

unread,
Dec 8, 2007, 6:02:16 AM12/8/07
to
Grüezi Lisa

Lisa Wilke-Thissen schrieb am 08.12.2007

> "Thomas Ramel" schrieb im Newsbeitrag
>

>> Mit welcher Office-Version arbeitest Du?
>
> ich ärgere mich auch, das die wichtigsten Angaben immer erst zum Schluss
> erscheinen, im vorliegenden Fall Office 2003.

Danke - ich hatte sowas schon vermutet.

Gerade seit O2007 auf dem Markt ist, scheint mir die Versionsangabe *noch*
wichtiger geworden zu sein, da hier in gewissen Bereichen kein Stein auf
dem anderen geblieben ist.

>> Ab Office 2002 wurde die Standard-Verbindung
>> zwischen Word und Excel auf ODBC geändert,
>
> OLEDB. ODBC könnte man wählen.

Mift, da habe ich die Begriffe wieder durcheinander gebracht.

...ich weiss hier 'nur', dass ich die mit 'O...' nicht will, sondern
normalerweise DDE verwende ;-)

Lisa Wilke-Thissen

unread,
Dec 8, 2007, 7:26:42 AM12/8/07
to
Hallo Thomas,

"Thomas Ramel" schrieb im Newsbeitrag

news:g2y2uxbd3a6y.mouowzhgy13i$.dlg@40tude.net...

> Gerade seit O2007 auf dem Markt ist, scheint
> mir die Versionsangabe *noch* wichtiger geworden
> zu sein, da hier in gewissen Bereichen kein Stein
> auf dem anderen geblieben ist.

wohl wahr. Aber auch die Vorversionen unterscheiden sich im Detail.

[OLEDB, ODBC]


> ...ich weiss hier 'nur', dass ich die mit
>'O...' nicht will, sondern normalerweise
> DDE verwende ;-)

Man könnte auch noch den Excel-Konverter verwenden ...
DDE hat halt den Nachteil, dass das Programm gestartet bzw. die Datei
geöffnet werden muss.

Thomas Ramel

unread,
Dec 8, 2007, 8:49:03 AM12/8/07
to
Grüezi Lisa

Lisa Wilke-Thissen schrieb am 08.12.2007

> Hallo Thomas,


>
> "Thomas Ramel" schrieb im Newsbeitrag
>

>> Gerade seit O2007 auf dem Markt ist, scheint
>> mir die Versionsangabe *noch* wichtiger geworden
>> zu sein, da hier in gewissen Bereichen kein Stein
>> auf dem anderen geblieben ist.
>
> wohl wahr. Aber auch die Vorversionen unterscheiden sich im Detail.

Ja, das ist korrekt - die Unterschiede sind allerdings wesentlihc geringer
als zum neuen O2007 - IMO.

> [OLEDB, ODBC]
>> ...ich weiss hier 'nur', dass ich die mit
>>'O...' nicht will, sondern normalerweise
>> DDE verwende ;-)
>
> Man könnte auch noch den Excel-Konverter verwenden ...

Autsch... ;-)

> DDE hat halt den Nachteil, dass das Programm gestartet bzw. die Datei
> geöffnet werden muss.

OK, das ist ein Argument, dem (auch) ich mich nicht entziehen kann.

Was ist denn deine favorisierte Lösung?

Formatschalter in Word oder eine andere Verbindungs-Art?

Peter Wenzel

unread,
Dec 8, 2007, 12:33:59 PM12/8/07
to
Hallo,
Erst mal herzlichen Dank für eure Mühe,


Lisa Wilke-Thissen schrieb:

> ich ärgere mich auch, das die wichtigsten Angaben immer erst zum Schluss
> erscheinen, im vorliegenden Fall Office 2003.

tut mir echt Leid, ich hielt's für clever diese Info in die Signatur zu schreiben, damit ich's auf
gar keinen Fall vergesse! Ja, so kann's gehen...

Zum Thema:
Starte ich zuerst Word, und lade dann das Serienbriefdokument über die DDE Verbindung, bekomme ich
zwar das Datum richtig angezeigt, aber alle anderen Seriendruckfelder sind nicht mehr in der
richtigen Reihenfolge. Dies passiert auch wenn ich ein ganz neues Dokument erstelle.
Verwende ich hingegen die OLE DB Verbindung, ist das Datum falsch, der Rest aber richtig.

Starte ich wie angegeben aus dem Excel-Makro heraus, kommt keine Meldung, das Dokument wird
angezeigt mit falschem Datum, einem falschen numerischen Feld (Wert ist falsch) und die
Serienbrief-Symbolleiste ist bis auf "Hauptdokument Setup" und "Datenquelle öffnen" alles inaktiv.
Ändere ich die Verbindung auf DDE ist es wie oben beschrieben alles durcheinander.

Was kann ich tun?


Thomas Ramel schrieb:

> Vielleicht könntest Du die Erzeugung des Word-Objektes und das öffnen der
> Datei in zwei Schritten vornehmen. Dann hast Du ein eigenes Objekt für das
> Word-Dokument und kannst dieses komfortabler steuern.

Ich stehe mit der VBA Programmierung noch ziemlich am Anfang. Könntest du mir hierzu nähere Angaben
machen?

Thomas Ramel

unread,
Dec 8, 2007, 1:50:15 PM12/8/07
to
Grüezi Peter

Peter Wenzel schrieb am 08.12.2007

> Lisa Wilke-Thissen schrieb:


>
>> ich ärgere mich auch, das die wichtigsten Angaben immer erst zum Schluss
>> erscheinen, im vorliegenden Fall Office 2003.
>
> tut mir echt Leid, ich hielt's für clever diese Info in die Signatur zu schreiben, damit ich's auf
> gar keinen Fall vergesse! Ja, so kann's gehen...

Sorry, das hatte ich echt übersehen - dabei halte ich es ja genauso :-((

> Starte ich zuerst Word, und lade dann das Serienbriefdokument über die DDE Verbindung, bekomme ich
> zwar das Datum richtig angezeigt, aber alle anderen Seriendruckfelder sind nicht mehr in der
> richtigen Reihenfolge. Dies passiert auch wenn ich ein ganz neues Dokument erstelle.

Was genau passiert denn da?
Die Felder in Word werden anders angeordnet oder wie muss ich das
verstehen?

Hat deine Excel-Liste explizite Spaltenüberschriften, die Du dann in Word
als Seriendruckfelder verwendest?

Oder inwiefern geraten die Felder durcheinander?

> Verwende ich hingegen die OLE DB Verbindung, ist das Datum falsch, der Rest aber richtig.

Du könntest das Datum mit einem Feld-Schalter in Word entsprechend
formatieren, dann kommts auch hin.

> Starte ich wie angegeben aus dem Excel-Makro heraus, kommt keine Meldung, das Dokument wird
> angezeigt mit falschem Datum, einem falschen numerischen Feld (Wert ist falsch)

Falsch im Sinne von zu vielen Kommastellen oder im sine von 'ein ganz
anderer Wert' aus der Excel-Datei?

> und die
> Serienbrief-Symbolleiste ist bis auf "Hauptdokument Setup" und "Datenquelle öffnen" alles inaktiv.
> Ändere ich die Verbindung auf DDE ist es wie oben beschrieben alles durcheinander.
>
> Was kann ich tun?

Das klingt für mich irgendwie seltsam.

> > Vielleicht könntest Du die Erzeugung des Word-Objektes und das öffnen der
> > Datei in zwei Schritten vornehmen. Dann hast Du ein eigenes Objekt für das
> > Word-Dokument und kannst dieses komfortabler steuern.
>
> Ich stehe mit der VBA Programmierung noch ziemlich am Anfang. Könntest du mir hierzu nähere Angaben
> machen?

Willst Du den Serienbrief dann von Hand weiter verarbeiten oder soll das
alles gesteuert aus Excel heraus geschehen?
Das ist mit nicht so ganz klar.

Lisa Wilke-Thissen

unread,
Dec 8, 2007, 2:25:29 PM12/8/07
to
Hallo Peter,

"Peter Wenzel" schrieb im Newsbeitrag
news:uJGTCCcO...@TK2MSFTNGP04.phx.gbl...

[Office 2003]


> tut mir echt Leid, ich hielt's für clever diese Info in die Signatur zu
> schreiben, damit ich's auf gar keinen Fall vergesse!

die Idee an sich ist ja auch nicht schlecht.
Angenehmer aber ist, wenn man die Information gleich auf den ersten Blick
erkennt und entsprechend entscheiden kann, ob ...
Bis zur Signatur liest sich kaum einer durch, es sei denn, er/sie hat viel
Zeit.

>> Verwende ich hingegen die OLE DB Verbindung, ist das Datum falsch, der
>> Rest aber richtig.

Eventuell könnte ein Feldschalter helfen, allerdings ...

> Starte ich wie angegeben aus dem Excel-Makro heraus, kommt keine Meldung,
> das Dokument wird angezeigt mit falschem Datum, einem falschen numerischen
> Feld (Wert ist falsch)

... scheint mir da noch mehr quer zu laufen.

> Ich stehe mit der VBA Programmierung noch ziemlich am Anfang.

Dann solltest du dich an die Newsgroup für Word-VBA wenden. Denn das Problem
dürfte weniger mit dem Start aus Excel, sondern vielmehr mit deiner
Fortsetzung in Word zu tun haben - was du selbst ja auch schon vermutet
hattest.

Peter Wenzel

unread,
Dec 9, 2007, 10:51:09 AM12/9/07
to
Thomas Ramel schrieb:

>> Starte ich zuerst Word, und lade dann das Serienbriefdokument über die DDE Verbindung, bekomme ich
>> zwar das Datum richtig angezeigt, aber alle anderen Seriendruckfelder sind nicht mehr in der
>> richtigen Reihenfolge. Dies passiert auch wenn ich ein ganz neues Dokument erstelle.
>
> Was genau passiert denn da?
> Die Felder in Word werden anders angeordnet oder wie muss ich das
> verstehen?

Richtig!

> Hat deine Excel-Liste explizite Spaltenüberschriften, die Du dann in Word
> als Seriendruckfelder verwendest?

Auch richtig!
Lasse ich mir mit ALT-F9 die Feldnamen anzeigen, scheint alles OK zu sein, jedoch die aus der
Tabelle gelesenen Inhalte erscheinen dann an ganz anderer Stelle.

>> Verwende ich hingegen die OLE DB Verbindung, ist das Datum falsch, der Rest aber richtig.
>
> Du könntest das Datum mit einem Feld-Schalter in Word entsprechend
> formatieren, dann kommts auch hin.

Bevor ich das ganze Makrogesteuert entwarf, hatte ich eine, ich sag mal "händische" Version. D.h.
Die Exceltabelle wurde extra erstellt, dann wurde Excel geschlossen und der Serienbrief in Word
manuell gestartet. Das funktionierte zwar etwas umständlich aber einwandfrei. Auch dort hatte ich
das Problem mit dem Datum, welches ich aber mit dem Formatschalter gut in den Griff bekam.

>
>> Starte ich wie angegeben aus dem Excel-Makro heraus, kommt keine Meldung, das Dokument wird
>> angezeigt mit falschem Datum, einem falschen numerischen Feld (Wert ist falsch)
>
> Falsch im Sinne von zu vielen Kommastellen oder im sine von 'ein ganz
> anderer Wert' aus der Excel-Datei?

In der Tabelle stehen zwei Spalten die quasi eine Seitennummerieung wiedergeben (Seite 37 von 365
zum Beispiel). Im Serienbrief dagegen erscheint Seite 1 von 1507. Einen Numerischen Wert 1507 gibt
es aber in der gesamten Tabelle nicht, so dass mir auch der Verdacht 'falsche Spalte eingelesen'
nicht logisch erscheint.


> Willst Du den Serienbrief dann von Hand weiter verarbeiten oder soll das
> alles gesteuert aus Excel heraus geschehen?
> Das ist mit nicht so ganz klar.

Der Serienbrief soll dann nur noch gedruckt werden.
Eigentlich ist es auch kein Brief als solches, sondern ein Inhaltsbeschreibender Vorbindezettel in
einem bestimmten Layout. Möglicherweise lässt sich so etwas auch innerhalb Excel realisieren, so
dass man eine Verbindung zu Word gar nicht benötigt. Nur habe ich hier keinen Plan wie ich so etwas
in Excel gestalten kann.

Thomas Ramel

unread,
Dec 9, 2007, 11:52:37 AM12/9/07
to
Grüezi Peter

Peter Wenzel schrieb am 09.12.2007

> Thomas Ramel schrieb:
>
>>> Starte ich zuerst Word, und lade dann das Serienbriefdokument über die DDE Verbindung, bekomme ich
>>> zwar das Datum richtig angezeigt, aber alle anderen Seriendruckfelder sind nicht mehr in der
>>> richtigen Reihenfolge. Dies passiert auch wenn ich ein ganz neues Dokument erstelle.
>>
>> Was genau passiert denn da?
>> Die Felder in Word werden anders angeordnet oder wie muss ich das
>> verstehen?
>
> Richtig!
>
>> Hat deine Excel-Liste explizite Spaltenüberschriften, die Du dann in Word
>> als Seriendruckfelder verwendest?
>
> Auch richtig!
> Lasse ich mir mit ALT-F9 die Feldnamen anzeigen, scheint alles OK zu sein, jedoch die aus der
> Tabelle gelesenen Inhalte erscheinen dann an ganz anderer Stelle.

Das ist aber mehr als eigenartig - die Vorlage für den Serienbrief
existiert aber schon, oder erstellst Du diese ebenfalls direkt per VBA?

>>> Verwende ich hingegen die OLE DB Verbindung, ist das Datum falsch, der Rest aber richtig.
>>
>> Du könntest das Datum mit einem Feld-Schalter in Word entsprechend
>> formatieren, dann kommts auch hin.
>
> Bevor ich das ganze Makrogesteuert entwarf, hatte ich eine, ich sag mal "händische" Version. D.h.
> Die Exceltabelle wurde extra erstellt, dann wurde Excel geschlossen und der Serienbrief in Word
> manuell gestartet. Das funktionierte zwar etwas umständlich aber einwandfrei. Auch dort hatte ich
> das Problem mit dem Datum, welches ich aber mit dem Formatschalter gut in den Griff bekam.

bei der Steuerung mit VBA sollte/müsste das genauso gut klappen.
Wie gesagt, exportiere mal die Daten in eine eigene Excel-Datei und
erstelle die Verknüpfung dann darauf statt auf die aktuell geöffnete - dies
klappt nämlich nicht.

> Eigentlich ist es auch kein Brief als solches, sondern ein Inhaltsbeschreibender Vorbindezettel in
> einem bestimmten Layout. Möglicherweise lässt sich so etwas auch innerhalb Excel realisieren, so
> dass man eine Verbindung zu Word gar nicht benötigt. Nur habe ich hier keinen Plan wie ich so etwas
> in Excel gestalten kann.

Wenn Du ein wenig umschreibst wie das aussehen soll, klappt das bestimmt
mit einer Schleife, die alle deine Werte durchgeht und dann jeweils
ausdruckt.

Peter Wenzel

unread,
Dec 9, 2007, 12:27:47 PM12/9/07
to
Hallo Thomas,

Thomas Ramel schrieb:

> bei der Steuerung mit VBA sollte/müsste das genauso gut klappen.
> Wie gesagt, exportiere mal die Daten in eine eigene Excel-Datei und
> erstelle die Verknüpfung dann darauf statt auf die aktuell geöffnete - dies
> klappt nämlich nicht.

Sorry, hatte vergessen es zu erwähnen. Mein Makro erstellt die Tabelle in einer eigenen Datei die
nach dem (über-)schreiben natürlich geschlossen wird.

> Wenn Du ein wenig umschreibst wie das aussehen soll, klappt das bestimmt
> mit einer Schleife, die alle deine Werte durchgeht und dann jeweils
> ausdruckt.

Ich ahne was du vorhast, obwohl ich absolut nicht wüsste wie man's umsetzt.
Wenn es dir recht ist, erstelle ich eine Beispieltabelle aus der exemplarisch hervorgeht wie's
aussehen soll, die ich dir dann per Mail schicke!?!

Thomas Ramel

unread,
Dec 10, 2007, 12:39:57 AM12/10/07
to
Grüezi Peter

Peter Wenzel schrieb am 09.12.2007

> Thomas Ramel schrieb:


>
>> bei der Steuerung mit VBA sollte/müsste das genauso gut klappen.
>> Wie gesagt, exportiere mal die Daten in eine eigene Excel-Datei und
>> erstelle die Verknüpfung dann darauf statt auf die aktuell geöffnete - dies
>> klappt nämlich nicht.
>
> Sorry, hatte vergessen es zu erwähnen. Mein Makro erstellt die Tabelle in einer eigenen Datei die
> nach dem (über-)schreiben natürlich geschlossen wird.

OK, das wärs damit dann also nicht gewesen.

>> Wenn Du ein wenig umschreibst wie das aussehen soll, klappt das bestimmt
>> mit einer Schleife, die alle deine Werte durchgeht und dann jeweils
>> ausdruckt.
>
> Ich ahne was du vorhast, obwohl ich absolut nicht wüsste wie man's umsetzt.
> Wenn es dir recht ist, erstelle ich eine Beispieltabelle aus der exemplarisch hervorgeht wie's
> aussehen soll, die ich dir dann per Mail schicke!?!

Ja, tu das doch - Du kannst die Mappe auch auf einen WebSpace hochladen und
dann den Link hier nennen, dann können sich mehrere an der Lösung
beteiligen.

Peter Wenzel

unread,
Dec 15, 2007, 7:25:55 PM12/15/07
to
Hallo,

verzeihung, aber ich war die Woche über so beschäftigt, dass ich mich leider nicht melden konnte.


Thomas Ramel schrieb:

> Ja, tu das doch - Du kannst die Mappe auch auf einen WebSpace hochladen und
> dann den Link hier nennen, dann können sich mehrere an der Lösung
> beteiligen.


Gute Idee, hier der Link:

http://home.telebel.de/mipoeti/index.html

Thomas Ramel

unread,
Dec 16, 2007, 3:26:10 AM12/16/07
to
Grüezi Peter

Peter Wenzel schrieb am 16.12.2007

> verzeihung, aber ich war die Woche über so beschäftigt, dass ich mich leider nicht melden konnte.

Kein Problem, nun bis Du ja wieder hier.


> Thomas Ramel schrieb:
>
>> Ja, tu das doch - Du kannst die Mappe auch auf einen WebSpace hochladen und
>> dann den Link hier nennen, dann können sich mehrere an der Lösung
>> beteiligen.
>
> Gute Idee, hier der Link:
>
> http://home.telebel.de/mipoeti/index.html

Fein, Danke - hier ist die Datei wieder:

http://users.quick-line.ch/ramel/Demo-Daten/ExcelVorbinder.xls

Ich habe einen dynamischen Namen 'Daten' eingefügt, dessen Grösse sich an
der Länge der Daten im zweiten Tabellenblatt orientiert.
Eine Zelle im ersten Taellenblatt habe ich ebenfalls mit 'Zeile' benannt.

Dann alle veränderbaren Texte mit einer Formel und abhängig vom Wert in der
als 'Zeile' mit INDEX() aus dem Bereich 'Daten' bestimmt.

Wenn Du nun den Wert in der Zelle veränderst passen sich die Inhalte an die
jeweilige Zeile der Daten an.

Das Ganze kannst Du per Makro hinterlegt finden und beim klicken auf das
Shape wird dieses ausgelöst.
Es zählt alle Zeilen durch, passt den Wert in der Zelle an, wodurch sich
die Inhalte der Zellen verändern, und druckt das Ganze dann aus.

Im Code ist eine Zeile drin die Du für die 'scharfe' Verison entfernen oder
auskommentieren kannst. Hier der einzige Code, der in der Mappe drin ist:

Public Sub Drucken()
Dim lngI As Long
For lngI = 2 To Range("Daten").Rows.Count
Range("Zeile").Value = lngI
Sheets("Vorbindeblatt").PrintOut Copies:=1
If lngI > 5 Then Exit For 'Diese Zeile entfernen
Next lngI
Range("Zeile").Value = 1
End Sub

Peter Wenzel

unread,
Dec 16, 2007, 12:10:03 PM12/16/07
to
Thomas Ramel schrieb:

> Fein, Danke - hier ist die Datei wieder:

Hallo Thomas,
ich habe zu danken!
Eine wirklich tolle Lösung, zumal mir der Druck aus Excel Vorteile bietet die ich aus Word nicht
kenne, z.B. sind die Ortsnamen manchmal ziemlich lang, so lang, dass sie in eine Zeile nicht mehr
passen. Word fügte dann einfach den Rest in eine zweite Zeile und der Drucktext passte dann nicht
mehr auf ein Blatt. Bei Excel gebe ich einfach an, dass der Inhalt an die Zellgröße angepasst wird.

Was mich aber mißtrauisch macht, ist, dass für jede Seite ein eigener Druckauftrag erzeugt wird.
Du mußt wissen, daß wir jede Woche ca. 3000 solcher Zettel drucken müssen. In der Regel nacheinander
weg. Wie verarbeitet Windows solch eine hohe Anzahl von Aufträgen im Spooler?
Das Seriendokument wurde bisher in einem Rutsch in den Druckerspeicher katapultiert, das hat den
Rechner dann nicht mehr belastet.
Apropos, bei Word konnte ich über den Serienbriefdruckdialog angeben, ob ich alle, einige oder
einzelne Datensätze drucken möchte. Lässt sich so etwas auch einbauen?

Aber dennoch, deine Lösung arbeitet sehr schön, und gibt mir eine neue Inspiration mit Excel zu
arbeiten. Ganz besonders werde ich mich wohl mit der Funktion 'Bereich.Verschieben' befassen.


Habe 1000 mal Dank!

Thomas Ramel

unread,
Dec 16, 2007, 1:43:22 PM12/16/07
to
Grüezi Peter

Peter Wenzel schrieb am 16.12.2007

> Thomas Ramel schrieb:


>
>> Fein, Danke - hier ist die Datei wieder:
>

> Eine wirklich tolle Lösung, zumal mir der Druck aus Excel Vorteile bietet die ich aus Word nicht
> kenne, z.B. sind die Ortsnamen manchmal ziemlich lang, so lang, dass sie in eine Zeile nicht mehr
> passen. Word fügte dann einfach den Rest in eine zweite Zeile und der Drucktext passte dann nicht
> mehr auf ein Blatt. Bei Excel gebe ich einfach an, dass der Inhalt an die Zellgröße angepasst wird.

Fein, dass dir mein sonntag-morgendlicher Entwurf so gut gefällt :-)

> Was mich aber mißtrauisch macht, ist, dass für jede Seite ein eigener Druckauftrag erzeugt wird.
> Du mußt wissen, daß wir jede Woche ca. 3000 solcher Zettel drucken müssen. In der Regel nacheinander
> weg. Wie verarbeitet Windows solch eine hohe Anzahl von Aufträgen im Spooler?

Das müsste man mal ausprobieren und sehen wie es sich verhält.
Excel arbeitet hier auch immer mit dem Standard-Drucker; der muss zuvor
also auch korrekt eingestllt werden.

> Das Seriendokument wurde bisher in einem Rutsch in den Druckerspeicher katapultiert, das hat den
> Rechner dann nicht mehr belastet.

Ja, das ist richtig - Word erzeugt im Grunde eine grosse Datei dir dann auf
einmal an den Drucker gesandt wird und halt entsprechend gross ist.

Die Variante hier mit Excel druckt nach jeder Veränderung der Inhalte ein
einzelnes Blatt.

Man könnte nun aber hingehen und die Daten 'unendlich' oft untereinander
kopieren und dann diese auf einmal drucken. Die Formeln müssen dann halt
angepasst werden, sodass jedesmal andere Daten importiert werden.
Auch dies könnte man per VBA problemlos aufbereiten und temporär in der
Mappe ein solches Tabellenblatt anlegen.

Dann wird auch nur ein Dokument an den Spooler gesandt, das dann halt
wieder entsprechend gross ist.

> Apropos, bei Word konnte ich über den Serienbriefdruckdialog angeben, ob ich alle, einige oder
> einzelne Datensätze drucken möchte. Lässt sich so etwas auch einbauen?

Ja, das könnte ich mir in Form einer eigenen Hilfsspalte vorstellen, in der
pro Datensatz eine Markierung eingetragen wird. Berücksichtigt würden dann
nur die Sätze die eine Markierung enthalten.
Auch eine mehrfache Filterung wäre durchaus denkbar.

Du müsstest ein Szenario entwerfen was in welcher Form machbar sein soll -
der VBA-Code dazu ist dann nicht mehr allzu schwierig denke ich mal (und
hoffe mich mit dieser Aussage nicht *zu* weit aus dem Fenster zu lehnen
;-))

> Aber dennoch, deine Lösung arbeitet sehr schön, und gibt mir eine neue Inspiration mit Excel zu
> arbeiten. Ganz besonders werde ich mich wohl mit der Funktion 'Bereich.Verschieben' befassen.

Ja, ich mag diese Funktion gerade für dynamische Bereiche sehr.

> Habe 1000 mal Dank!

Aber gerne doch - Danke auch für dein ausführliches Feedback.

0 new messages