Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Duplex per VBA?

Forumthread: Duplex per VBA?

Duplex per VBA?
08.09.2015 07:47:44
Chris
Hallo Forum,
mal sehen ob jmd. eine Lösung weiß: Ich drucker per Excel-Makro einen Serienbrief. Funktioniert soweit problemlos. Gibt es inzwischen eine Möglichkeit, Duplex Druck per VBA einzustellen? Der Makro Recorder hilft da leider (immer noch?) nicht weiter:
Sub SerienbTV()
On Error GoTo err:
'Im Excel VBA-Editor für die Datei mit diesem Makro unter Extras-Verweise _
den Verweis auf die Microsoft Word x.y Object Library aktivieren!!
Dim winword, WinDoc As Word.Document, docSerienbrief As Word.Document
Dim sFile As String, strCon As String
strDatenQuelle = Environ("USERPROFILE") & "\Desktop\TV-Verwaltung\DQ-TV.xlsx"
strWOrdvorlage = Environ("USERPROFILE") & "\Desktop\TV-Verwaltung\Beispielbrief.docx"
sFile = strWOrdvorlage
Set winword = CreateObject("Word.Application")
With winword
.Visible = False
'Vorlagedatei öffnen
Set WinDoc = .documents.Open(sFile)
With WinDoc
With .MailMerge
'Datenquelle öffnen
.OpenDataSource Name:=strDatenQuelle, _
Connection:="Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & strDatenQuelle & ";" _
& "Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";" _
& "Jet OLEDB:Engine ", _
SQLStatement:="SELECT * FROM `Tabelle1$`"
'Serienbrief mit allen Daten in neuem Dokument erstellen
.Destination = wdSendToNewDocument
.SuppressBlankLines = False
With .DataSource
'For i = 1 To x
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
'Next i
End With
.Execute Pause:=False
Set docSerienbrief = winword.ActiveDocument
'Datenquelle wieder schliessen
.DataSource.Close
End With
'Vorlagedatei wieder schliessen
.Close savechanges:=False
End With
'Serienbrief - Drucken - Seitenvorschau
docSerienbrief.Application.WindowState = wdWindowStateMinimize
' If MsgBox("Serienbrief ""TV-Vertrag drucken?"" Drucken ?", vbYesNo + vbQuestion, _
'     "Serienbrief-Erstellung - Drucken - Seitenvorschau") = vbYes Then
' docSerienbrief.Application.WindowState = wdWindowStateMaximize
'docSerienbrief.PrintPreview
' If MsgBox("Ergebnisprofile drucken?", vbYesNo + vbQuestion, _
'"Serienbrief-Erstellung-Speichern") = vbYes Then
docSerienbrief.PrintOut Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
'End If
'End If
'Serienbrief -Speichern
docSerienbrief.Application.WindowState = wdWindowStateMinimize
'If MsgBox("Ergebnisprofile als PDF auf Desktop speichern ?", vbYesNo + vbQuestion, _
'  "Serienbrief-Erstellung-Speichern") = vbYes Then
'docSerienbrief.Application.WindowState = wdWindowStateMaximize
'docSerienbrief.Application.Dialogs(wdDialogFileSaveAs).Show
'winword.ActiveDocument.ExportAsFixedFormat Outputfilename:=Environ("USERPROFILE") & "\  _
_
Desktop\" & "IK-D", _
ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:= _
wdExportAllDocument, Item:=wdExportDocumentContent, _
IncludeDocProps:=True
' MsgBox "PDF-Datei erfolgreich auf Desktop gespeichert!",  _
vbInformation
docSerienbrief.Application.WindowState = wdWindowStateMinimize
End With
winword.Quit savechanges:=False
Set docSerienbrief = Nothing
Set winword = Nothing
Set WinDoc = Nothing
'err:
'Exit Sub
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: doppelt - owT
08.09.2015 10:06:11
MatthiasG
nix
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige