Serienbriefe & VBA - !!! Bitte um Erleuchtung !!!

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Info! Wir verlosen 3 x das Nacken- und Schultermassagegerät Optimus New Generation Jade! - Spiel mit!

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Serienbriefe & VBA - !!! Bitte um Erleuchtung !!!

      Hallo zusammen,

      ich bin in Sachen VBA ziemlicher Laie. Gut, streichen wir das "ziemlich". :-D
      Ich bin Laie.

      Folgender Sachverhalt:

      Ich habe eine XLS-Quelle mit Datensätzen und erstelle mir daraus in Word einen Serienbrief.
      Dieser hat dann 36 Seiten.

      Mein Wunsch:

      Ich möchte nun jede Seite unter eigenem Namen vollautomatisiert abspeichern lassen - wahlweise
      als word-datei oder pdf.

      Habe gehört, dass soll mittels VBA funktionieren.

      Ich habe bereits einen passenden VBA-Code aus dem WWW.

      Meine Fragen:
      Wo fügen ich den ein ? XLS oder bei Word ?
      Was muss ich beachten ?
      Muss ich dann noch was verknüpfen ?

      -------

      Word-Serienbrief als einzelne Dateien speichern :: blog.bartlweb
      Sub Serienbrief()
      ' set variables
      Dim iBrief As Integer, sBrief As String
      Dim AppShell As Object
      Dim BrowseDir As Variant
      Dim Path As String

      ' catch any errors
      On Error GoTo ErrorHandling

      ' determine path
      Set AppShell = CreateObject("Shell.Application")
      Set BrowseDir = AppShell.BrowseForFolder(0, "Speicherort für Serienbriefe auswählen", 0, 16)

      If BrowseDir = "Desktop" Then
      Path = CreateObject("WScript.Shell").SpecialFolders("Desktop")
      Else
      Path = BrowseDir.items().Item().Path
      End If

      If Path = "" Then GoTo ErrorHandling

      Path = Path & "\Serienbrief-" & Format(Now, "dd.mm.yyyy-hh.mm.ss") & "\"
      MkDir Path

      On Error GoTo ErrorHandling

      ' hide application for better performance
      MsgBox "Serienbriefe werden exportiert. Dieser Vorganag kann einige Minuten dauern - Microsoft Word wird während dieser Zeit ausgeblendet", vbOKOnly + vbInformation
      Application.Visible = False

      ' create bulkletter and export as pdf
      With ActiveDocument.MailMerge
      .DataSource.ActiveRecord = 1
      Do
      .Destination = wdSendToNewDocument
      .SuppressBlankLines = True
      With .DataSource
      .FirstRecord = .ActiveRecord
      .LastRecord = .ActiveRecord
      sBrief = Path & .DataFields("ID").Value & ".pdf"
      End With
      .Execute Pause:=False

      If .DataSource.DataFields("ID").Value > "" Then
      ActiveDocument.SaveAs FileName:=sBrief, FileFormat:=wdFormatPDF
      End If
      ActiveDocument.Close False

      If .DataSource.ActiveRecord < .DataSource.RecordCount Then
      .DataSource.ActiveRecord = wdNextRecord
      Else
      Exit Do
      End If
      Loop
      End With

      ' error handling
      ErrorHandling:
      Application.Visible = True

      If Err.Number = 76 Then
      MsgBox "Der ausgewählte Speicherort ist ungültig", vbOKOnly + vbCritical
      ElseIf Err.Number = 5852 Then
      MsgBox "Das Dokument ist kein Serienbrief"
      ElseIf Err.Number = 4198 Then
      MsgBox "Der ausgewählte Speicherort ist ungültig", vbOKOnly + vbCritical
      ElseIf Err.Number = 91 Then
      MsgBox "Exportieren von Serienbriefen abgebrochen", vbOKOnly + vbExclamation
      ElseIf Err.Number > 0 Then
      MsgBox "Unbekannter Fehler: " & Err.Number & " - Bitte Makro erneut ausführen.", vbOKOnly + vbCritical
      Else
      MsgBox "Serienbriefe erfolgreich exportiert", vbOKOnly + vbInformation
      End If

      End Sub
      ---------

      Jede hilfreiche Antwort verdient meinen größtmöglichen Dank.:-)
      Gruß von J
    • ok.
      Also ich konnte mir das alles nun schon bereits so zusammenreimen, learning by doing.

      Meine Fragen:
      1. Wo fügen ich den ein ? XLS oder bei Word ?
      2. Was muss ich beachten ?
      3. Muss ich dann noch was verknüpfen ?



      1. Word - man muss vorher noch die Entwicklertool-Übersicht unter den "Word-Optionen-häufigverwendet" aktivieren und dann dort auf vba klicken
      2. Beachten muss ich, dass ich den Code an meine Verhältnisse anpasse.
      3. eigentlich nicht.

      -----

      Aufgetauchte Probleme ?
      Makro meint nach 22 Datensätzen, dass der Speicherort ungültig wäre.:(
      Aber davon lass ich mich nicht unterkriegen.
      Ich geh auf die Suche wie einst scho Indiana Jones.
      Gruß von J
    • relaxedhigh;968534 schrieb:

      ok.
      Also ich konnte mir das alles nun schon bereits so zusammenreimen, learning by doing.




      1. Word - man muss vorher noch die Entwicklertool-Übersicht unter den "Word-Optionen-häufigverwendet" aktivieren und dann dort auf vba klicken
      2. Beachten muss ich, dass ich den Code an meine Verhältnisse anpasse.
      3. eigentlich nicht.

      -----

      Aufgetauchte Probleme ?
      Makro meint nach 22 Datensätzen, dass der Speicherort ungültig wäre.:(
      Aber davon lass ich mich nicht unterkriegen.
      Ich geh auf die Suche wie einst scho Indiana Jones.


      Ok, nach Testen machen und tun.
      ist das jetzt alles i.O..

      Da mir so aber die Möglichkeit genommen wird,
      die Serienbriefe nochmal individuell zu verändern,
      mache ich mir jetzt noch n VBA, welches mir die Dateien nach Erstellung des Serienbriefes in einzelne Dateien abspeichert.
      Denn bisher beginnt das VBA ab serienbrief erstellen und endet
      bei Einzeln abspeichern
      Gruß von J