Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1600to1604
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Word anzeigen

Word anzeigen
07.01.2018 10:22:26
Peter
Hallo ihr Excelspezialisten,
zuerst einmal wünsche ich euch allen ein gesundes, neues Jahr.
Ich habe folgendes Problem:
Ich öffne aus Excel einen Word-Serienbrief. Dabei bleibt Excel geöffnet.
Nun möchte ich, dass nach dem Öffnen die Word-Application aktiv angezeigt wird.
Somit also einen Taskwechsel.
Wie kann ich dies ausführen?
Besten Dank für eure Hilfe.
Gruss
Peter

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Word anzeigen
07.01.2018 11:20:21
Luschi
Hallo Perter,
warum so zaghaft beim Zeigen des von Dir erstellen Vba-Codes.
mein Stichwort: Visible = True
Gruß von Luschi
aus klein-Paris
PS: Anzuwenden auf die Variable des Word-Objektes
AW: Word anzeigen
07.01.2018 11:24:34
Peter
Hallo Luschi,
besten Dank für Deine Hilfe, anbei mein Code:
Option Explicit
Option Private Module 'damit kann man die Prozeduren nicht per Alt+F8 starten
'interne Word-Konstanten in Excel nachbilden
Const wdOpenFormatAuto As Integer = 0
Const wdFormLetters As Integer = 0
Const wdSendToNewDocument As Integer = 0
Const wdSendToPrinter As Integer = 1
Const wdDefaultFirstRecord As Integer = 1
Const wdDefaultLastRecord As Integer = -16
Const wdMergeSubTypeAccess As Integer = 1
Const wdFirstDataSourceRecord As Integer = -6
Const wdFormatPDF As Integer = 17
Const wdPrintAllDocument As Integer = 0
Const wdFormatXMLDocument As Integer = 12
Const wdToggle As Long = 9999998
'hier geht es los!
Sub Start_SB()
Dim oWrd As Object, oDoc As Object
Dim wb As Workbook, ws As Worksheet
Dim strSheetName As String, xDocV As String, xSql As String
On Error Resume Next
'prüfen, ob Word schon aktiv ist
Set oWrd = GetObject(, "Word.Application")
If oWrd Is Nothing Then
'wenn nicht, dann Word erst malö öffnen
Set oWrd = CreateObject("Word.Application")
End If
On Error GoTo 0
If oWrd Is Nothing Then
MsgBox "Auf diesem Rechner ist M$-Word nicht installiert!", vbSystemModal + 16, "Hinweis. _
Exit Sub
End If
'diese Arbeitsmappe
Set wb = ThisWorkbook
'2. Tabellenblatt
Set ws = wb.Worksheets(2)
strSheetName = ws.Name
'Ort der Word-Vorlage Serie3nbrief auf dem Datenträger
'hier wird davon ausgegangen, das sich Word- & Exceldatei im gleichen Verzeichnis befinden
'    xDocV = wb.Path & "\SB_Vorlage.docx"
xDocV = wb.path & "\Serienbrief_Hauptformular_Lehrer_Klassen.docx"
'hierin befinden sich die {MergeField ...} und der sonstige Brieftext
Set oDoc = oWrd.Documents.Add(Template:=xDocV, NewTemplate:=False, DocumentType:=0)
oWrd.Visible = True
'neugeöffnete Datei in Serienbrief-Hauptdokument umwandeln
oDoc.MailMerge.MainDocumentType = wdFormLetters
'Fatenfeld-Auswahl in SQL-Schreibweise
xSql = "SELECT * FROM [Gesamtabrechnung$]"
'Datenquelle hinzufügen
oDoc.MailMerge.OpenDataSource Name:=wb.FullName, _
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=" & wb.FullName & _
";Mode=Read;Extended Properties=""Excel 12.0 Macro;HDR=YES;IMEX=1;""", _
SQLStatement:=xSql, SQLStatement1:="", SubType:=wdMergeSubTypeAccess
'Hinweis
'ab Office 2007 sollte der hier angewendete Treiber benutzt werden
'bei *.xlsm als Datenquelle
'";Extended Properties=""Excel 12.0 Macro; HDR=YES; IMEX=1"""
'bei *.xlsx als Datenquelle
'";Extended Properties=""Excel 12.0 Xml; HDR=YES; IMEX=1"""
'alter Daten-Treiber - Bitte nur bei Zugriff auf *.xls-Dateien (bid Excel 2003)  _
benutzen
'"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=user;Data Source=" & wb. _
FullName & "Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB" _
', SQLStatement:="SELECT * FROM `2017$`", SQLStatement1:="", SubType:= _
'wdMergeSubTypeAccess
'Umschalten auf Datenansicht
oDoc.MailMerge.ViewMailMergeFieldCodes = wdToggle
'beide Objektvariablen für Word ins Nirvana schicken
Set oDoc = Nothing
Set oWrd = Nothing
'Das fertige Word-SB-Hauptdockument ist noch geöffnet aber nicht gespeichert!
'    MsgBox "F e r t i g!", vbSystemModal + 64, "Hinweis...'"
'Achtung!!! Excel darf nicht geschlossen werden, da sonst die Daten in Word fehlen
'Excel-Datei und Excel schliessen
'    Call Excel_beenden_mit_Prüfung
End Sub
Was muss ich bitte einfügen, damit Word ausgewählt und angezeigt wird?!
Zusatzfrage:
Wenn dann Word wieder geschlossen wird, soll UF angezeigt werden an geöffneter Excel-Datei.
Anzeige
AW: Word anzeigen Lösung gefunden
07.01.2018 12:00:52
Peter
Hallo Luschi,
habe die Lösung gefunden:
nach der Zeile
oWrd.Visible = True
'eingefügt:
oWrd.Activate
oWrd.WindowState = wdWindowStateMaximize
Wünsche noch einen schönen Sonntag.
Gruss
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige