Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
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 schliessen aus Excel bei zwei oder mehreren offenen Dokumente

Word schliessen aus Excel bei zwei oder mehreren offenen Dokumente
30.12.2019 16:54:43
Peter
Hallo,
ich suche verzweifelt nach einer Lösung, dass bei einem aus Excel geöffnetem Dokument aus einer Vorlage, Word geschlossen wird. Das Problem ist dann vorhanden, wenn mehrere Dokumente geöffnet sind.
Das Dokument öffne ich mit nachstehendem Code:
'Word Dokument aus Vorlage öffnen
<pre>Private Sub CommandButton1_Click()
Dim wrdApp, wrdDoc
Dim strDName As String
Dim Pfad As String
Pfad = Worksheets("Tabelle1").Range("B9")
'Debug.Print Pfad
strDName = Pfad & "Test02.dotm"
'Debug.Print strDName
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
wrdApp.WindowState = 1 '0 = Normal; 1 = Maximized; 2 = Minimized
'' Set wrdDoc = wrdApp.Documents.Add(strDName) 'Neues Dokument auf Basis der Vorlage erstellen
Set newDoc = wrdApp.Documents.Add(strDName) 'Neues Dokument auf Basis der Vorlage erstellen
Me.Label1.Caption = "Dokument1 aus Vorlage" & vbLf & strDName & vbLf & "wurde geöffnet!"
Me.CommandButton1.Enabled = False
Me.CommandButton2.Enabled = True
''' 'aufheben von Set
''' Set wrdDoc = Nothing
''' Set wrdApp = Nothing
End Sub</pre>
Mit dem nachstehenden Code schliesse ich das Dokument wieder ohne speichern:
'Word Dokument aus Vorlage schliessen
Private Sub CommandButton2_Click()
' Wichtig!!
' unter "Extras" - "Verweise" einen Verweis auf die "Microsoft Word X.0 Object-Library" setzen!
Dim wrdApp As Object
Dim strDName As String
strDName = Worksheets("Tabelle1").Range("B11").Value
'    Debug.Print strDName
On Error Resume Next
Set wrdApp = GetObject(, "Word.Application")
If Err.Number = 429 Then  ' keine Word-Instanz vorhanden
Err.Clear
Label1.BackColor = &HC0FFC0
Label1.Caption = "Die Datei " & """" & strDName & """" & " wurde geschlossen!"
CommandButton1.Enabled = True
CommandButton2.Enabled = False
Exit Sub
Else
Label1.BackColor = &HC0FFC0
Label1.Caption = "Die Datei " & """" & strDName & """" & " wurde geschlossen!"
CommandButton1.Enabled = True
CommandButton2.Enabled = False
'schliesst "Dokument1" ohne speichern und beendet Word - Fehler -- aber auch alles  _
anderen Word-Instanzen
newDoc.Activate
With wrdApp.ActiveDocument
newDoc.Close 0
wrdApp.Quit                 'Fehler
End With
End If
'aufheben von Set
Set newDoc = Nothing
Set wrdApp = Nothing
End Sub
In der ersten Zeile von Userform VBA steht:
Option Explicit
Public newDoc As Object
Dadurch wird das Dokument1 aus der geöffneten Vorlage geschlossen. Mit "wrdApp.Quit" wird nicht nur die Word.Application dieses Dokuments geschlossen sondern alle geöffneten Word-Fenster.
Könnt ihr mir bitte helfen, wie ich es erreiche, dass nur die Word-Application geschlossen wird, in der das "Dokument1" geöffnet ist.
Besten Dank.
Gruss
Peter

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Word schliessen aus Excel bei zwei oder mehreren offenen Dokumente
30.12.2019 17:48:39
Nepumuk
Hallo Peter,
teste mal:
Option Explicit

Private wrdApp As Object, wrdDoc As Object
Private strDName As String

Private Sub CommandButton1_Click()
    strDName = Worksheets("Tabelle1").Range("B9").Value & "Test02.dotm"
    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    wrdApp.WindowState = 1
    Set wrdDoc = wrdApp.Documents.Add(strDName)
    With Label1
        .BackColor = &H8000000F
        .Caption = "Dokument1 aus Vorlage" & vbLf & strDName & vbLf & "wurde geöffnet!"
    End With
    Call AppActivate(Title:=wrdApp.Caption)
    CommandButton1.Enabled = False
    CommandButton2.Enabled = True
End Sub

Private Sub CommandButton2_Click()
    If Not wrdApp Is Nothing Then
        On Error Resume Next
        wrdDoc.Close 0
        wrdApp.Quit
        On Error GoTo 0
        Set wrdDoc = Nothing
        Set wrdApp = Nothing
    End If
    With Label1
        .BackColor = &HC0FFC0
        .Caption = "Die Datei " & """" & strDName & """" & " wurde geschlossen!"
    End With
    CommandButton1.Enabled = True
    CommandButton2.Enabled = False
End Sub

Gruß
Nepumuk
Anzeige
AW: funktioniert nicht ganz
30.12.2019 18:00:59
Peter
Hallo Nepumuk,
besten Dank für Deine Hilfe. Die von Dir erstellten Codes funktionierten fast.
Wenn zuerst ein Fremddokument geöffnet wird und danach das Dokument aus der Vorlage, dann funktioniert es einwandfrei.
Wird jedoch zuerst das Dokument aus der Vorlage geöffnet und danach ein Fremddokument, dann werden alle Worddokumente mit Word geschlossen.
Meine Bitte - hast Du hierfür noch eine Lösung?
Besten Dank
Gruss
Peter
AW: funktioniert nicht ganz
30.12.2019 18:16:08
Nepumuk
Hallo Peter,
so besser?
Option Explicit

Private wrdApp As Object, wrdDoc As Object
Private strDName As String

Private Sub CommandButton1_Click()
    strDName = Worksheets("Tabelle1").Range("B9").Value & "Test02.dotm"
    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    wrdApp.WindowState = 1
    Set wrdDoc = wrdApp.Documents.Add(strDName)
    With Label1
        .BackColor = &H8000000F
        .Caption = "Dokument1 aus Vorlage" & vbLf & strDName & vbLf & "wurde geöffnet!"
    End With
    CommandButton1.Enabled = False
    CommandButton2.Enabled = True
End Sub

Private Sub CommandButton2_Click()
    If Not wrdApp Is Nothing Then
        On Error Resume Next
        wrdDoc.Close 0
        If wrdApp.Documents.Count = 0 Then wrdApp.Quit
        On Error GoTo 0
        Set wrdDoc = Nothing
        Set wrdApp = Nothing
    End If
    With Label1
        .BackColor = &HC0FFC0
        .Caption = "Die Datei " & """" & strDName & """" & " wurde geschlossen!"
    End With
    CommandButton1.Enabled = True
    CommandButton2.Enabled = False
End Sub

Gruß
Nepumuk
Anzeige
AW: funktioniert
30.12.2019 19:04:00
Peter
Hallo Nepumuk,
es ist absolut perfekt. Alle meine Versuche sind eindeutig richtig.
Vielen, vielen Dank.
Ich wünsche Dir ein gutes, gesundes neues Jahr 2020.
Gruss
Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige