Thema Datum  Von Nutzer Rating
Antwort
Rot Serienbrief über Excel speichern
12.11.2021 07:12:53 skipp0r
NotSolved

Ansicht des Beitrags:
Von:
skipp0r
Datum:
12.11.2021 07:12:53
Views:
902
Rating: Antwort:
  Ja
Thema:
Serienbrief über Excel speichern

Hallo, ich bin relativ neu im Bereich VBA und versuche über verschiedene Tutorials und Code-Schnipsel mich der Materie zu nähren. Aktuell stoße ich jedoch über ein Problem das ich über andere Forumbeiträge nicht gelöst bekomme. Ich nutze Windows 10 mit Office 2019. Ich nutze teilweise Codeschnipsel aus verschiedenen Foren und passe sie mir meinen Bedürfnissen nach an. Der folgende Code soll aus einer Excel-Datei ein Serienbrief in Word erstellen und sowohl die Grunddatei des Serienbriefes speichern als auch die daraus erstellte Datei. Es funktioniert auch alles bis auf den Punkt das er die erstellte Datei speichern soll. Dann schreibt er das entweder "Objekt unterstützt diese Eigenschaft oder Methode nicht". Ich kann die neu erstellte Datei "Serienbriefe1" auch nicht selektieren, wenn ich das versuche schreibt er mir das keine Dokumente geöffnet sind obwohl ich sie sehen kann. Kann jemand meinen Fehler finden und erklären? Schoneinmal vielen Dank im Voraus

Option Explicit

Sub SerienbriefVerknüpfen()
    'https://www.ms-office-forum.net/forum/showthread.php?t=251123
    
    Dim oWord As Object
    Dim oDoc As Object
    Dim strLaufwerkDateiname As String
    Dim strSerienbrief As String
    Dim Projektnr As String
    Dim Unterlage As String
        
    Projektnr = Cells(2, 2).Value
    Unterlage = Cells(3, 2).Value

    strSerienbrief = "Test_Unterlagendeckblatt.docx" 'Dateinamen
    If strSerienbrief = "" Then
        MsgBox "Bitte triff eine Auswahl!"
        Exit Sub
    End If
    
    strLaufwerkDateiname = ThisWorkbook.Path & "\Rohdaten\" & strSerienbrief 'Pfad und _
Dateinamen zusammenfügen
    Set oWord = CreateObject("word.application")
    Set oDoc = oWord.Documents.Open(strLaufwerkDateiname)
    oWord.Visible = True
    oWord.Application.Activate 'Dokument wird in den Vordergrund geholt
    
    oDoc.MailMerge.MainDocumentType = 0 'wdFormLetters = 0. Gibt einen Typ von _
Seriendruckdokument an.
    oDoc.MailMerge.OpenDataSource Name:= _
        ThisWorkbook.FullName _
        , ConfirmConversions:=False, LinkToSource:=True, Connection:= _
        "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & _
ThisWorkbook.FullName & _
        ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Je" _
        , SQLStatement:="SELECT * FROM `Unterlagendeckblatt$`", SQLStatement1:="", SubType:=1
    
    oDoc.MailMerge.ViewMailMergeFieldCodes = wdToggle
    oDoc.SaveAs ThisWorkbook.Path & "\" & Projektnr & "_" & LCase(Unterlage) & "_udb_" & Format(Date, "yyyy-MM-dd") & "_Serienbrief"
    
With oDoc.MailMerge
        .Destination = 0 'wdSendToNewDocument  = 0. Die Ergebnisse werden aus dem Serienbrief _
in ein neues Dokument übertragen.
        .SuppressBlankLines = True 'Wenn Seriendruckfelder leer sind, werden die leere Zeilen _
im Seriendruckdokument unterdrückt.
        With .DataSource
            .FirstRecord = 1 'wdDefaultFirstRecord = 1. Aus dem Hauptdokument mit den Datensä _
tzen 1 bis
            .LastRecord = -16 'wdDefaultLastRecord = -16. Zum letzten Datensatz zusammengeführt
        End With
        .Execute Pause:=False
        .SaveAs ThisWorkbook.Path & "\" & Projektnr & "_" & LCase(Unterlage) & "_udb_" & Format(Date, "yyyy-MM-dd")
        .Close
        
    End With
    oDoc.Close SaveChanges:=0 'Das Seriendruckdokument wird ohne Speichern geschlossen
    
      
    Set oDoc = Nothing
    Set oWord = Nothing
   
End Sub

 

 


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
Rot Serienbrief über Excel speichern
12.11.2021 07:12:53 skipp0r
NotSolved