so sieht es genau richtig aus wie ich es haben wollte.
Ich habe Excel 2013 und habe nun das Add In installiert und habe nun auch Power Query.
Es wäre ganz nett wenn du kurz erklären kannst wie du das hinbekommen hast.
Und vorallem mit dem passenden Etikettenbogen.
Vielen Dank schonmal.
Hallo, ich habe mit Power Query eine Datenquelle geschaffen und sie an Word (Serienbrief) übergeben. Ich schicke gern die Dateien zum Anschauen und Nachvollziehen. Eine Erklärung würde ein wenig dauern. Nicht, dass das schwierig ist, aber es dauert das aufzuschreiben... Und ich bin in der Arbeit...
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
22.11.2019, 15:21 (Dieser Beitrag wurde zuletzt bearbeitet: 22.11.2019, 15:23 von Kapi.)
Hi
Könntest du mir das evtl. Später wenn du mehr Zeit hast oder über das Wochenende erklären?
Weil so kann ich noch nichts anfangen deswegen frage ich.
(22.11.2019, 14:45)Jockel schrieb: Hallo, ich habe mit Power Query eine Datenquelle geschaffen und sie an Word (Serienbrief) übergeben. Ich schicke gern die Dateien zum Anschauen und Nachvollziehen. Eine Erklärung würde ein wenig dauern. Nicht, dass das schwierig ist, aber es dauert das aufzuschreiben... Und ich bin in der Arbeit...
Vielleicht kannst du ja wie du schon sagtest die Daten schicken und ich versuche das zu verstehen und wenn ich was nicht verstehe frage ich nach
23.11.2019, 00:15 (Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2019, 00:16 von snb.)
Darfen wir hier nur Komplettlösungen posten, oder sind Vorschläge mit den man weiter arbeiten kann auch erlaubt ?
Word Makro
Code:
Sub M_snb() sn = GetObject("G:\OF\__etiket_4333.xlsb").Sheets(1).Cells(1).CurrentRegion
For j = 3 To UBound(sn) If sn(j, 2) <> "" Then c00 = c00 & Replace(Space(sn(j, 6)), " ", Replace(sn(j, 2), ".119", " 119_")) Next sn = Split(c00, "_")
For j = 0 To (UBound(sn) + 1) \ 189 + 1 Application.MailingLabel.CreateNewDocumentByID "201326677", " " For jj = 189 * j To 189 * (j + 1) If jj > UBound(sn) Then Exit For ActiveDocument.Tables(1).Cell((jj Mod 27) \ 7 + 1, 2 * (jj Mod 7) + 1).Range.Text = sn(jj) & Chr(13) & Chr(7) Next Next End Sub
(23.11.2019, 00:15)snb schrieb: Darfen wir hier nur Komplettlösungen posten, oder sind Vorschläge mit den man weiter arbeiten kann auch erlaubt ?
Hallo, nee, aber ob der TE das so alleine hätte erweitern können? Ich könnte es nicht, brauche ich auch nicht. Ich habe einen anderen Ansatz. Darfen ich doch, oder? Oder ist das nicht erlaubt?
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
mal allgemein gesagt - "sachdienliche Hinweise" sind jederzeit gern gesehen, egal in welchem Umfang oder Ansatz :100: Na ja, und wenn man verschiedene Lösungsansätze bekommt, z.B. mit und ohne Makros, ist auch nicht verkehrt.
Das zuletzt gepostete Makro erzeugt bei mir 3 Dateien, die ersten beiden unvollständig und die dritte bis auf die Rahmen leer.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Hallo André sehe ich genauso. Aber gleich meckern ist kacke... Es dann nicht besser machen, erst recht... Ist aber auch egal. Meine Variante ist getestet und liefert genau das beschriebene Ergebnis...
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
23.11.2019, 15:16 (Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2019, 15:16 von snb.)
@Schauan
Läuft bestimmt besser:
Code:
Sub M_snb() sn = GetObject("G:\OF\__etiket_4333.xlsb").Sheets(1).Cells(1).CurrentRegion
For j = 3 To UBound(sn) If sn(j, 2) <> "" Then c00 = c00 & Replace(Space(sn(j, 6)), " ", Replace(sn(j, 2), ".119", " 119_")) Next sn = Split(c00, "_")
For j = 0 To UBound(sn) \ 189 Application.MailingLabel.CreateNewDocumentByID "201326677", " " For jj = 189 * j To 188 * (j + 1) If jj > UBound(sn) Then Exit For ActiveDocument.Tables(1).Cell((jj Mod 189) \ 7 + 1, 2 * (jj Mod 7) + 1).Range.Text = sn(jj) & Chr(13) & Chr(7) Next Next End Sub
Der Excel approach:
Code:
Sub M_snb() sn = Sheet1.Cells(1).CurrentRegion
c00 = "naam" & vbCr For j = 3 To UBound(sn) If sn(j, 2) <> "" Then c00 = c00 & Replace(Space(sn(j, 6)), " ", Replace(sn(j, 2), ".119", " 119" & vbCr)) Next