Clever-Excel-Forum

Normale Version: Daten in Etikettbogen reinschreiben lassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
(22.11.2019, 07:55)Kapi schrieb: [ -> ]Hi,

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...
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, 13: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
Hallo, okay. Ab dafür..:

[attachment=27754]
[attachment=27755]
Powerquery ? Kanonen ? Spatzen ?

Nur Word:

Code:
Sub M_snb()
    Application.MailingLabel.CreateNewDocumentByID "201326677", "L001.020.005.119"
End Sub
(22.11.2019, 16:00)snb schrieb: [ -> ]Powerquery ? Kanonen ? Spatzen ?

Nur Word:

Code:
Sub M_snb()
    Application.MailingLabel.CreateNewDocumentByID "201326677", "L001.020.005.119"
End Sub

Hallo, nein. Kann es sein, dass dein Code nicht die unterschiedlichen Artikelnummern und deren vorgegebenen Anzahl Etiketten berücksichtigt..?
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
(22.11.2019, 23: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?
Hallöchen,

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.

[attachment=27768]
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...
@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
    
    CreateObject("scripting.filesystemobject").createtextfile("G:\OF\etiket_006.txt").write c00
    
    GetObject(, "word.application").DisplayAlerts = 0
    GetObject("G:\OF\Herma_4333.docx").mailmerge.Execute
End Sub
Seiten: 1 2 3