Thema Datum  Von Nutzer Rating
Antwort
19.09.2024 13:52:40 Alex
Solved
19.09.2024 19:03:15 ralf_b
Solved
19.09.2024 21:18:16 Gast29666
Solved
23.09.2024 08:51:12 Alex
Solved
23.09.2024 11:27:15 Alex
Solved
23.09.2024 23:52:24 xlKing
NotSolved
23.09.2024 23:55:07 xlKing
NotSolved
24.09.2024 11:05:12 Alex
NotSolved
Rot Bilder nach Filter/Vergleich einfügen
24.09.2024 20:05:26 xlKing
NotSolved
24.09.2024 20:57:38 xlKing
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
24.09.2024 20:05:26
Views:
37
Rating: Antwort:
  Ja
Thema:
Bilder nach Filter/Vergleich einfügen

Hab ich dir doch geschrieben, den angegebenen Dateipfad durch deinen ersetzen. Das Wort Tabelle1$ hinter FROM durch den Namen deiner Tabelle ersetzen. Am besten auch mit $ hinten dran. Und natürlich die Feldnamen "Datei" und "Name" durch die deinen ersetzen. Die zu ersetzenden Sachen sind sogar automatisch hellblau markiert im Code. Insofern sollte das doch kein Problem sein. Aber bitte. Hier noch ein Versuch mit deinen Daten. Da du den Dateinamen nicht verraten hast, musst du natürlich das Wort Dateiname noch ersetzen.

Sub Etikett_Erstellen()
  Dim doc As Document, cl As Cell, i As Long
  Set doc = Application.MailingLabel.CreateNewDocumentByID(LabelId:="805957182")
  doc.MailMerge.OpenDataSource Name:="C:\Test\Dateiname.xlsx", SQLStatement:="SELECT * FROM `Tabelle1$`"
  ActiveWindow.View.ShowFieldCodes = True
  For Z = 1 To 8
    For s = 1 To 5 Step 2
      Set cl = doc.Tables(1).Cell(Z, s)
        With cl.Tables.Add(Range:=cl.Range, NumRows:=1, NumColumns:=2)
          For i = 1 To 8
            .Borders(-i).LineStyle = wdLineStyleNone
          Next i
          .TopPadding = CentimetersToPoints(0)
          .BottomPadding = CentimetersToPoints(0)
          .LeftPadding = CentimetersToPoints(0)
          .RightPadding = CentimetersToPoints(0)
          .Spacing = 0
          .Rows.HeightRule = wdRowHeightExactly
          .Rows.Height = cl.Height
          doc.Fields.Add Range:=StartRange(.Cell(1, 1).Range), Text:="DISPLAYBARCODE ""Hier"" QR"
          doc.MailMerge.Fields.Add Range:=PartRange(.Cell(1, 1).Range, "Hier"), Name:="Token"
          doc.MailMerge.Fields.Add Range:=.Cell(1, 2).Range, Name:="Username"
          EndRange(.Cell(1, 2).Range).InsertAfter vbNewLine
          doc.MailMerge.Fields.Add Range:=EndRange(.Cell(1, 2).Range), Name:="Voller Name"
          .Cell(1, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
          .Cell(1, 1).VerticalAlignment = wdCellAlignVerticalCenter
          .Cell(1, 2).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
          .Cell(1, 2).VerticalAlignment = wdCellAlignVerticalCenter
          If Not (Z = 1 And s = 1) Then doc.Fields.Add Range:=StartRange(.Cell(1, 1).Range), Text:="NEXT "
        End With
        'Stop
    Next s
  Next Z
   
  ActiveDocument.MailMerge.Destination = wdSendToNewDocument
  ActiveDocument.MailMerge.Execute Pause:=False
  ActiveWindow.View.ShowFieldCodes = False
End Sub
 
Function EndRange(rng As Range) As Range
  Dim myRange As Range
  Set myRange = rng
  myRange.SetRange rng.End - 1, rng.End - 1
  Set EndRange = myRange
End Function
Function StartRange(rng As Range) As Range
  Dim myRange As Range
  Set myRange = rng
  myRange.SetRange rng.Start, rng.Start
  Set StartRange = myRange
End Function
Function PartRange(rng As Range, LookFor As String) As Range
  'Stop
  Dim myRange As Range, s As Long, e As Long
  Set myRange = rng
  s = InStr(myRange, LookFor)
  e = s + Len(LookFor)
  myRange.SetRange rng.Start + s - 1, rng.Start + e - 1
  Set PartRange = myRange
End Function

Gruß Mr. K.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
19.09.2024 13:52:40 Alex
Solved
19.09.2024 19:03:15 ralf_b
Solved
19.09.2024 21:18:16 Gast29666
Solved
23.09.2024 08:51:12 Alex
Solved
23.09.2024 11:27:15 Alex
Solved
23.09.2024 23:52:24 xlKing
NotSolved
23.09.2024 23:55:07 xlKing
NotSolved
24.09.2024 11:05:12 Alex
NotSolved
Rot Bilder nach Filter/Vergleich einfügen
24.09.2024 20:05:26 xlKing
NotSolved
24.09.2024 20:57:38 xlKing
NotSolved