Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Serienbrief aus Excel heraus befüllen

Serienbrief aus Excel heraus befüllen
24.10.2023 15:33:38
ExcelMoonRise
Hallo zusammen,

Mein Anliegen:
Ich habe eine Exceltabelle mit Daten die auf Etiketten gedruckt werden sollen. Nun sind es je Zeile aber nicht immer die gleichen Daten aus den selben Spalten die kopiert werden sollen und sind somit an eine Bedingung aus einer vorangehenden Spalte gekoppelt. Ferner muss ich bestimmen können ab welcher Position auf dem Etikettenpapier mit dem Einfügen angefangen werden soll, z.B. die ersten 3 Etiketten sind bereits runter, also soll dann erst beim vierten Etikett angefangen werden. In den einzelnen Etiketten befinden sich kleine Tabellen für die Positionierung, mit jeweils unterschiedlichen Formatierungen, der verschiedenen Daten die dort eingefügt werden sollen ohne die Formatierungen zu überschreiben. Die Exceltabelle hat bei der Erstellung stets einen neuen kryptischen Namen, die Worddateien haben fest definierte Namen und liegen derzeit noch auf meinen C Laufwerk.

Ziel:
Mit so wenig Klicks wie möglich die Etiketten beschriftet kriegen.
Da die Exceldatei das erste Glied in dieser Kette ist, würde ich das am liebsten über einen Button mit einem Makro aus Excel heraus erledigen.
Über Word anzufangen fände ich umständlicher, da ich ja stets die Empfängerliste neu einbinden müsste oder die Exceldatei unter einer festen Bezeichnung und Speicherort abspeichern müsste.

Meine bisherige Herangehensweise:
In Excel mit VBA eine InputBox zum ermitteln der Position mit welchem Etikett angefangen werden soll. Inklusive Fehlerabfragen um ungültige Eingaben zu vermeiden.
Einen Zähler für die Anzahl der zu erstellenden Etiketten eingebaut.
So weit so gut xD
Nun habe ich versucht anhand von zwei Unterschiedlichen Wordvorlagen ein Serienbriefdokument via copy and paste zu erstellen, aber bis aufs Öffnen der Datei habe ich nicht mal das copy hinbekommen, vom paste ganz zu schweigen, und Google brachte mir auch keine brauchbaren Ergebnisse. Dieses Serienbriefdokument sollte dann mit den richtigen Seriendruckfeldern bestückt sein.


Sollten Fragen bestehen, bitte einfach drauf los fragen.


Meine Fragen:
1.) Ist es möglich via Excel VBA die Empfängerliste in einer Serienbriefvorlage auf die aktuelle Arbeitsmappe zu ändern?
2.) Ist es mit Excel VBA möglich, Daten aus einer Exceltabelle in eine Wordvorlage für Etiketten an die entsprechenden Positionen zu schreiben ohne die Formatierung der Wordvorlage dabei zu ändern, so das man dann quasi ohne die Serienbrieffunktionen arbeitet? Habe mich, da ich noch nicht so weit war, noch absolut gar nicht mit festdefinierten Positionen beschäftigt. Habt also bitte ein wenig Rücksicht
3.) Wenn ich nun über Word arbeiten muss :( ist es dann möglich, dass die Bedingungen für die auszuwählenden Daten anhand der ersten Position eines längeren Strings aus der Tabelle abgelesen werden kann?
4.) Wenn ich diese VBA Thematik zwischen Excel und Word vertiefen möchte, welche Literatur könnt ihr mir da empfehlen?

MfG
ExcelMoonRise
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Serienbrief aus Excel heraus befüllen
24.10.2023 19:04:56
JoWE
Hallo, vielleicht ein gedanklicher Anstoss:
Das als jpg dargestellte Word-Dokument hat nur 1 Seite, 2 Spalten und je Spalte 3 Tabellen mit jeweils nur einer Tabellenzeile (siehe Foto).
Userbild
der folgende Code füllt so die 6 Tabellen mit Text. Das sollte auch aus Excel von einem Makro gesteuert gelingen:
Sub Tabellen_als_Etiketten_füllen()

Dim i As Long
For i = 1 To 6
ActiveDocument.Tables(i).Select
Selection.TypeText Text:=("blabla " _
& i & vbNewLine & "Untertext " & i & ".1")
Next
End Sub

Anzeige
AW: Serienbrief aus Excel heraus befüllen
25.10.2023 08:57:18
Luschi
Hallo ExcelMoonRise,

warum willst Du das Pferd von hinten aufzäumen?
- Du brauchst einen fertigen Seriendruckbrief
- mit eingestelltem Etikettendruck mit der richtigen Etikettenart
- dann kannst Du Daten dafür in Excel anlegen
- und diese Excel-Datei in Word als Datenlieferant einstellen

Willst Du das echt alles mit Excel-Vba machen?

fragt sich Luschi
aus klein-Paris

Anzeige
AW: Serienbrief aus Excel heraus befüllen
25.10.2023 10:11:48
ExcelMoonRise
Guten Morgen,
1. JoWE
2. Luschi

@JoWE
Danke für den Vorschlag. Ob mir das jedoch hilft, weiss ich noch nicht, werde ich mal nachdenken. Als erstes geht mir da leider durch den Kopf, dass Etiketten spezielle Größen haben und ich diese bei der Erstellung beachten muss, ferner müssen 2 Trennstriche da mit rein und die Zellen feste, unveränderbare Größen haben (egal wie viel Text da aus der Tabelle eingefügt wird). Jeder einzelne Bereich ist auch noch unterschiedlich formatiert (Schriftgröße, bold, unterschiedliche Einzüge, eine Zeile besitzt sogar 3 Zellen).
Ist das in Word geschriebener Code? Denn ich dachte, wenn ich aus Excel heraus in Word was gestalten möchte, benötige ich dafür andere Befehle? Mir fehlt leider eine Übersicht aller Befehle und was sie bezwecken. Denn was ich so an Übersichten im Netz finde, kann nicht alles sein, denn in Foren (auch hier) sehe ich Befehle die dort nicht aufgelistet sind, nicht mal auf der Seite von Microsoft.
Meine über Nacht gekommene Idee ist nun aber einen anderen Weg zu probieren. Das Script soll innerhalb der Workbook ein neues Sheet erzeugen, worin dann quasi die kleine Tabelle innerhalb der Etikette erstellt wird. Dort dann die benötigten Felder einfügt und entsprechend formatiert, kopiert und an Textmarken im Worddokument übergibt. Wobei ich bezweifle das ich die Einzüge so hinbekomme wie ich sie gerne hätte, da Excel dort nur Ganze Zahlen haben will und mir diese zu groß sind. Ferner scheint es egal zu sein ob ich in den Optionen die Maßeinheit auf mm oder cm oder anderes ändere, es wird immer die selbe verwendet wie vor der Änderung in den Optionen und mit der kann ich irgendwie gar nichts anfangen. Wie viele Pixel entsprechen 1mm?


@Luschi
- existiert, bringt mir nur nichts aus diversen Gründen
1.) Der wird immer ab Position 1 bedruckt, absolut bescheuert und unbrauchbar, denn ich fange jetzt nicht an mit copy und paste alle Etiketten in das richtige einzuarbeiten
2.) Es werden nicht immer die gleichen Spalten je Zeile benötigt und die Bedingung (erste Stelle eines String in einer bestimmten Spalte) scheint nicht definierbar zu sein mit einem Serienbrief.

- die vorhandene Etikettenvorlage in Word ist leider eher unbrauchbar, da die Daten teilweise außerhalb der Bereiche gedruckt werden und die linken Etiketten dadurch einen anderen Einzug besitzen als die rechten Etiketten. Darum habe ich mir ein eigenes Gerüst aus einer Tabelle erstellt. Seither ist darin der Text deutlich besser positionierbar und es wird nichts über die Ränder hinaus bedruckt. Nur leider aus genannten Gründen ebenfalls unbrauchbar.

- Nach einer Auswertung unserer Firmeneigenen Software erhalte ich eine Exceltabelle die jedes mal einen neuen kryptischen Namen zugewiesen bekommt

- was auch diesen Punkt hier als hinfällig erklärt. Denn diese Datei müsste ich dann entweder immer erst unter einem bestimmten Namen an einem festen Speicherort abspeichern oder ich muss die Empfängerliste im Serienbrief ständig ändern und dafür die neue raussuchen. Äußerst Rückständig beides.

Darum will ich es mit VBA lösen.

Anzeige
AW: Serienbrief aus Excel heraus befüllen
25.10.2023 10:28:19
JoWE
Moin, noch immer kein abschließender Gruß, ts ts ts

Schön Dein ganzer "Roman".
Wie wär's denn zunächst einmal mit einem Beispiel eines fertigen Etiketts mit Angabe der Etikettendetails. So ins Blaue ist es nicht wirklich leicht etwas zu entwickeln.

Gruß
Jochen
AW: Serienbrief aus Excel heraus befüllen
25.10.2023 13:18:08
ExcelMoonRise
Hi,

hoffe dies ist was du wolltest, doch leider wusste ich nicht, wie ich hier Bilder/Screenshots einbinden kann wie du es getan hast, habe daher eine Worddatei mit den Maßen für die Etiketten hochgeladen. Oder hat das was mit dem Link zu tun den ich hier gerade einbinden sollte? Wenn ja, dann sry für diesen zusätzlichen Roman hier^^

https://www.herber.de/bbs/user/163720.doc

Zusätzliche Informationen zu den Etiketten:
Der Inhalt von den Zellen "A/B" & "D/E" sind in Abhängig von der ersten Position des Strings aus dem Feld "G"

Zelle "A / B"
-Schriftart/Größe/Ausrichtung
Arial / 14 bold / linksbündig
-Zellenbegrenzung
oben/unten 0,15cm, links/rechts 0,19cm
-Vertikale Ausrichtung "Oben"
-Zeilenumbruch
-Hängender Einzug
links ~0,75
rechts ~8,25

Zelle "C"
-Schriftart/Größe/Ausrichtung
Arial / 10 bold / linksbündig
-Zellenbegrenzung
oben/unten 0,2cm, links/rechts 0,19cm
-Vertikale Ausrichtung "Oben"
-Zeilenumbruch
-Hängender Einzug
links ~0,75A
rechts ~8,25

Zelle "D / E"
-Schriftart/Größe/Ausrichtung
Arial / 16 bold / zentriert
-Zellenbegrenzung
oben/unten 0,15cm/0cm, links/rechts 0,19cm
-Vertikale Ausrichtung "Oben"
-Zeilenumbruch
-Hängender Einzug
links ~0,75
rechts ~8,25

Zelle "F"
-Schriftart/Größe/Ausrichtung
Arial / 16 bold / zentriert
-Zellenbegrenzung
wie gesamte Tabelle
-Vertikale Ausrichtung "Unten"
-Zeilenumbruch

Zelle "G"
-Schriftart/Größe/Ausrichtung
Arial / 6 / linksbündig
-Zellenbegrenzung
oben/unten 0cm, links/rechts 0,05cm/0,19cm
-Vertikale Ausrichtung "Unten"
-Zeilenumbruch

Zelle "H"
-Schriftart/Größe/Ausrichtung
Arial / 16 / rechtsbündig
-Zellenbegrenzung
wie gesamte Tabelle
-Vertikale Ausrichtung "Unten"


Ja, ich weiß, hier ist nicht jede einzelne Zelle ins Detail fest definiert, aber es genügt so um die Etiketten so ausgedruckt zu bekommen wie sie benötigt werden :-)
Anzeige
AW: Serienbrief aus Excel heraus befüllen
25.10.2023 18:12:47
JoWE
Hallo (ich schreibe auch mal einen kleinen Roman)

zur Verdeutlichung (wie macht man das von Excel aus) findest Du im Zip-File ein Word-Doc mit Etiketten entsprechend zu Deinen Vorgaben,
Das Doc fungiert als Vorlage und enthält 5 Tabellen; jede Tabelle enthält zwei Etiketten. Dazu enthält das Zip-File eine Excel-Arbeitsmappe mit Makro.
Beide Files in ein gemeinsames Verzeichnis entpacken, dann sollte es funktionieren.
Aufgrund eine fehlenden Datenquelle nutzte ich die von mir passend zum Makro gebastelte Tabelle.
Das Makro füllt genau eine DinA4-Seite, beschreibt also nur die 10 Etiketten der Seite mit den Daten der Exceltabelle.

Um mit nur einem Klick weitere Etikettenbögen zu beschreiben oder auch in einem Etikettenbogen erst ab einem bestimmten Etikett Daten zu schreiben
musst Du allerdings noch eine Lösung finden (z.B: am Ende der Word-Vorlage einen Seitenumbruch einfügen und eine Kopie der ersten Seite
sooft wie benötigt anhängen und mit dem Schleifenzähler des Makros in Einklang bringen).

Vermutlich wird meine Lösung nicht zu Deiner Datentabelle passen.
https://www.herber.de/bbs/user/163738.zip
Aber vielleicht reicht es aus, damit die gedachte Funktionsweise nachzuvollziehen, um selbst weiterzuentwickeln zu können.

So, schließlich kann sicherlich es auch wesentlich bessere Lösungen geben, drauf kannst Du natürlich auch warten.

Gruß
Jochen


Anzeige
AW: Serienbrief aus Excel heraus befüllen
26.10.2023 19:53:22
ExcelMoonRise
Nabend,

sry, hat ein wenig gedauert heute.

Danke für die Hilfe :-)

Zum Verständnis: In der Wordvorlage ist die Tabelle für die Etiketten vorbereitet. 5 x 2 Tabellen, mit je 1 Zelle, 1 Zelle, 1 Zelle, 3 Zellen. Welche scheinbar einer internen (unsichtbaren) Nummerierung von 1-12 und 1-5 folgen. Richtig?
Du hast es in 5x2 aufgeteilt um es übersichtlich zu halten und nicht von 1-120 händisch abzuarbeiten? Wobei auch das sicherlich mit Counter abzuarbeiten wäre. Aber erstmal unwichtig, würde ich schon hinkriegen (denke ich xD).
Jedoch bin ich auf ein weiteres Problem gestoßen, an deiner als auch an meiner Wordvorlage. Wenn ich nun sage, dass ich nur 3 Etiketten ab Position 4 beschreiben möchte, dann wären im Ausdruck noch die Trennlinien der übrigen und auch der bereits entfernten Etiketten (1,2,3,7,8,9,10) mit dabei. Diese muss ich nun im nachhinein löschen, geht das über Code?
Oder kann man solche Etikettenbereiche deaktivieren in der Wordvorlage, bis man sie über das Excel VBA aktiviert welche benötigt werden, wenn, wie?
Macht es am Ende nicht evtl doch mehr Sinn, dieses komplett in der Exceldatei in einem neuen Worksheet abzuarbeiten, statt es auf Word zu übertragen? Welche Vorteile bringt mir dann noch die Daten in Word statt Excel zu haben?

Wo kann man solche Befehle wie ".tables.cell" nachschlagen?

MfG

Anzeige
AW: Serienbrief aus Excel heraus befüllen
27.10.2023 00:05:56
JoWE
Hallo,
hier nochmal ein Zip-File: https://www.herber.de/bbs/user/163840.zip
Wie gehabt: In ein gemeinsames Verzeichnis entpacken.
Vor dem Test des Makros entferne in der Excel-Datentabelle die Daten aus dem Range("A2:F2").
Das Makro soll dann, weil in "A2" kein Wert drin ist, die Linie des leeren "Etiketts" entfernen.

Zur Frage, wie Syntax für Word-VBA finden.
Du kannst auch in Word Makros aufzeichnen. In den aufgezeichneten Codes siehst Du dann schon eine ganze Menge.
Mit den aufgezeichneten Codezeilen und weiterer dazu passenden Internet-Recherchen kommst Du bei einfachen Anforderungen schon ganz gut zurecht.
So bin ich anfangs vorgegangen.

Gruß
Jochen
Anzeige
AW: Serienbrief aus Excel heraus befüllen
27.10.2023 14:33:50
JoWE
Hallo,

habe es jetzt mit einem Word-Dokument bestehend aus 2 Spalten und 5 Tabellen als Etiketten gemacht.
Läuft schneller, ist weniger Code und auch einfacher. Der Umgang mit dem Zip-File ist gleichgeblieben.
https://www.herber.de/bbs/user/163853.zip

Gruß
Jochen

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige