Thema Datum  Von Nutzer Rating
Antwort
Rot Bindung Excel - Word lösen
18.12.2021 13:14:15 Flyinggancho
NotSolved
08.02.2022 19:03:01 Gast97299
NotSolved

Ansicht des Beitrags:
Von:
Flyinggancho
Datum:
18.12.2021 13:14:15
Views:
1487
Rating: Antwort:
  Ja
Thema:
Bindung Excel - Word lösen

Hallo zusammen,

mit dem nachfolgenden Code erfolgt zunächst eine Abfrage ob weitergemacht oder abgebrochen werden soll...

Dann wird aus sFile = strPfad & "z_GA-Daten.xlsm" die Anzahl für den Seriendruck ausgelesen und eine "Bindung" für einen Serienbrief hergestellt.

Der Serienbrief wird gedruckt und ein pdf mit dem Serienbrief erstellt - jeweils nach Abfrage...

 

Dann möchte ich in diese z_GA-Daten.xlsm eintragen, dass gedruckt wurde und wo undsoweiter

das klappt auch, nur muss die z_GA-Daten.xlsm noch von vorher offen sein oder so, da immer aufgefordert wird, eine Kopie zu speichern.

Wie kriege ich denn die "Bindung" gelöst, dass eben in die z_GA-Daten.xlsm gespeichert werden kann?

 

Danke

FG

 

 

Sub PARTEIEN()
'
 Dim strPfad, vName As String
 Dim vAnz As Integer
 Dim vFrage As Integer
 Dim xlApp As Object
 Dim xlWkb As Object
 Dim sFile As String
 Dim sSheet As String
 
     sSheet = "Parteien"
     vAnz = 1
 
 If MsgBox("Die Anzahl der Drucke wird von vorher übernommen ! " & vbCrLf & vbCrLf & "Soll abgebrochen werden (für Word-Neustart) ? ", vbYesNo + vbQuestion, _
"Danke für die Beachtung aller Sicherheitsmaßnahmen ! ") = vbYes Then Exit Sub ' vFrage = True Else vFrage = False
 
    strPfad = ActiveDocument.path & "\"
    sFile = strPfad & "z_GA-Daten.xlsm"
    ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
    ActiveDocument.MailMerge.OpenDataSource Name:=sFile _
        , ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
        AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
        WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
        Format:=wdOpenFormatAuto, Connection:= _
        "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=strPfadLst;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Eng" _
        , SQLStatement:="SELECT * FROM `Parteien$`", SQLStatement1:="", SubType:= _
        wdMergeSubTypeAccess
    
    sSheet = "Parteien"
    
    'überprüfen ob File vorhanden
    With CreateObject(Class:="Scripting.FileSystemObject")
        If .fileexists(sFile) Then
            'Datei vorhanden
            Set xlApp = CreateObject(Class:="Excel.Application")
            Set xlWkb = xlApp.Workbooks.Open(sFile)
            'Arbeiten im Excel
            With xlWkb.Worksheets(sSheet)
            vAnz = .Cells(1, 1)
            End With
            'Meldungen unterdrücken
            xlApp.DisplayAlerts = False
            xlWkb.Close SaveChanges:=True
            xlApp.DisplayAlerts = True
            xlApp.Quit
        Else
            'Code wenn Datei nicht vorhanden
        End If
    End With
    '
'    Set xlWkb = Nothing
 '   Set xlApp = Nothing

    DoEvents
      
      vAnz = vAnz - 1
        
      vAnz = InputBox("Anzahl der PARTEIEN", "PARTEIEN", vAnz)
     
     If MsgBox("PDF-Druck ? ", vbYesNo + vbQuestion, _
"Danke für die Beachtung aller Sicherheitsmaßnahmen ! ") = vbYes Then
    
   Application.ScreenUpdating = False
    Dim StrFolder As String, StrName As String, MainDoc As Document, i As Long, j As Long
    Set MainDoc = ActiveDocument
    With MainDoc
    StrFolder = .path & Application.PathSeparator
        
   '  For i = 1 To vAnz '.MailMerge.DataSource.RecordCount
      With .MailMerge
      .Destination = wdSendToNewDocument
      .SuppressBlankLines = True
      With .DataSource
        .FirstRecord = 1
        .LastRecord = vAnz
        .ActiveRecord = i
       ' If Trim(.DataFields("Zuname")) = "" Then Exit For
        
       ' StrName = MainDoc.Name
         StrName = Left(MainDoc.Name, Len(MainDoc.Name) - 5)
       '  MsgBox (StrName)
      End With
      .Execute Pause:=False
       
    End With
    StrName = Trim(StrName)
    With ActiveDocument
     ' .SaveAs2 FileName:=StrPath & StrName & ".docx", FileFormat:=wdFormatXMLDocument, AddToRecentFiles:=False
      ' and/or:
      .SaveAs2 FileName:=StrFolder & StrName & ".pdf", FileFormat:=wdFormatPDF, AddToRecentFiles:=False
      .Close SaveChanges:=False
    End With
' Next i
End With
Application.ScreenUpdating = True

    End If
     
     If MsgBox("PAPIER-Druck ? ", vbYesNo + vbQuestion, _
            "Danke für die Beachtung aller Sicherheitsmaßnahmen ! ") = vbYes Then
            ActivePrinter = "C368"
         With ActiveDocument.MailMerge
            .Destination = wdSendToPrinter
            .SuppressBlankLines = True
        
        With .DataSource
            .FirstRecord = 1
            .LastRecord = vAnz
        End With
        .Execute Pause:=False
    End With
    
    Dim xx As Integer
 vDatum = Date
 
    sFile = ActiveDocument.path & "\" & "z_GA-Daten.xlsm"
    sSheet = "Startblatt"
    
    With CreateObject(Class:="Scripting.FileSystemObject")
        If .fileexists(sFile) Then
            'Datei vorhanden
            Set xlApp = CreateObject(Class:="Excel.Application")
            Set xlWkb = xlApp.Workbooks.Open(sFile)
            'Arbeiten im Excel
            With xlWkb.Worksheets(sSheet)
            For xx = 4 To 500
            vHtxt = .Cells(xx, 6)
            If vHtxt = "" Then
            .Cells(xx, 6) = vDatum
           ' .Cells(xx, 7) = vCopy ' Anzahl der Drucke
            .Cells(xx, 8) = ActiveDocument.Name
          '   .Cells(xx, 9) = vPrinter
            Exit For
            End If
            
            Next
                        
            End With
            'Meldungen unterdrücken
            xlApp.DisplayAlerts = False
            xlWkb.Close SaveChanges:=True
            xlApp.DisplayAlerts = True
            xlApp.Quit
             DoEvents
        Else
            'Code wenn Datei nicht vorhanden
        End If
    End With
    '
    Set xlWkb = Nothing
    Set xlApp = Nothing
    
    DoEvents
     ActiveDocument.Save
    ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
    
   End If
    
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 Bindung Excel - Word lösen
18.12.2021 13:14:15 Flyinggancho
NotSolved
08.02.2022 19:03:01 Gast97299
NotSolved