00202
Nicht registrierter Gast
Hallo Frank, :19: du könntest auch mit " GetObject" arbeiten ( den kannst du auch mehrmals hintereinander ausführen): :21: Code: Option Explicit Public Sub Main_1() On Error GoTo Fin With GetObject("C:\Temp\Test.doc") .Parent.Visible = True .Parent.Activate End With ' Dein weiterer Code Fin: ' Word beenden 'If Not objWD Is Nothing Then objWD.Parent.Quit If Err.Number = 432 Then MsgBox "Datei nicht vorhanden!" End Sub
Bzw. so mit Variable: :21: Code: Public Sub Main_2() Dim objWD As Object On Error GoTo Fin Set objWD = GetObject("C:\Temp\Test.doc") With objWD.Parent .Visible = True .Activate End With ' Dein weiterer Code Fin: ' Word beenden 'If Not objWD Is Nothing Then objWD.Parent.Quit Set objWD = Nothing If Err.Number = 432 Then MsgBox "Datei nicht vorhanden!" End Sub
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
23.10.2020, 08:09
(Dieser Beitrag wurde zuletzt bearbeitet: 23.10.2020, 08:10 von schauan.)
Hallöchen, erweitere mal eine Zeile so: If boOpen = False Then objWordApp.documents.Open sDatei Else objWordApp.documents.Add Du wolltest ja ein neues Dokument "öffnen" wenn das andere schon offen ist ... Ansonsten ist der Code von Case deutlich kürzer
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo zusammen, die Frage des TE war doch Zitat:Wenn ich danach Excel beende und dann wieder neu öffne, erscheint das Word Dokument nur minimiert in der Taskleiste.
Wie kann ich das ändern wenn ich das Fenster maximiert geöffnet bekommen möchte. Das wird durch eure Vorschäge nicht realisiert.  Gruß Uwe
Registriert seit: 29.09.2015
Version(en): 2030,5
Code: Sub M_snb() If Dir("G:\OF\beispiel.docx") <> "" Then GetObject("G:\OF\beispiel.docx").Windows(1).Visible = True Application.ActivateMicrosoftApp 1 End If End Sub
Registriert seit: 25.06.2020
Version(en): 2010
(23.10.2020, 08:09)schauan schrieb: Hallöchen,
erweitere mal eine Zeile so:
If boOpen = False Then objWordApp.documents.Open sDatei Else objWordApp.documents.Add
Du wolltest ja ein neues Dokument "öffnen" wenn das andere schon offen ist ... Ansonsten ist der Code von Case deutlich kürzer  Ich will verhindern das Word dasselbe Dokument zweimal öffnet.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
23.10.2020, 11:35
(Dieser Beitrag wurde zuletzt bearbeitet: 23.10.2020, 11:35 von schauan.)
Hi Franky, ich zitiere mal für das Öffnen eines neuen Dokumentes, Zitat:... war wird die MsgBox nicht ausgelöst wenn ich das Word Dokument ein zweitesmal öffne, es wird aber auch kein neues Dokument geöffnet - so wie gewünscht. wobei sich da die Formulierung etwas beißt. Ich würde das neue Dokument erstellen  Zitat:Wenn ich danach Excel beende und dann wieder neu öffne, erscheint das Word Dokument nur minimiert in der Taskleiste. Also, wenn ich das Makro ausgeführt habe, Excel beende und am Word-Dokument nichts mache, bleibt es im vorherigen Zustand, z.B. Vollbild. Wenn ich Excel neu starte, tut sich da auch nix. Lediglich Excel ist dann im Vordergrund und Word im Hintergrund. Wenn ich die Datei mit dem Makro öffne ist Word immer noch im Vollbild im Hintergrund. Führe ich das Makro aus, ist Word immer noch im Vollbild und nun im Hintergrund. Was machst Du anders als ich  ? Hier mal noch zur Sicherheit der Maximier-Code, der käme bei mir nach der zeile mit dem If boOpen ... objWordApp.ActiveDocument.ActiveWindow.WindowState = 1
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 22.11.2019
Version(en): 365
Hallo zusammen, eigentlich wollte ich ja auch in meinem Eingangscode mit GetObject arbeiten, wie man aus meiner Textausführung zum Code vielleicht entnehmen kann, hatte mich verschrieben, aber das nur so am Rande. @Frank: Ich habe jetzt mehrfach bei geöffneter und nicht geöffneter Worddatei Excel geschlossen und wieder geöffnet. Bei mir ist nichts minimiert, sondern immer im Windowmodus..... @snb: Ein interessanter und deutlich kürzerer Code zum Aktivieren des Objektes (gefällt mir). Leider erhalte ich jedoch "Laufzeitfehler 424 Objekt erforderlich" wenn die Worddatei nicht auf ist und den "Laufzeitfehler 5941 Objekt nicht in Sammlung", wenn die Datei schon auf ist. Vielleicht hilft es, wenn man den Fenstermodus setzt. Code: Sub WordOeffnen() Dim objWordApp As Object Dim objDoc As Object Dim sDatei As String sDatei = "C:\Module\Test.docx"
If Dir(sDatei) <> "" Then Set objDoc = GetObject(sDatei) If Not oDoc Is Nothing Then Set objWordApp = objDoc.Parent 'Application ermitteln objWordApp.Visible = True 'Word sichtbar machen objWordApp.Activate 'und aktivieren objDoc.ActiveWindow.WindowState = 1 '0=Normal, 1=Maximiert, 2=minimiert
'Weitere Aktionen....
Set objDoc = Nothing Set objWordApp = Nothing End If Else MsgBox "Datei ist nicht vorhanden!", vbCritical, "Worddatei öffnen" End If End Sub ____________________ viele Grüße aus Freigericht Karl-Heinz
Registriert seit: 25.06.2020
Version(en): 2010
24.10.2020, 00:30
(Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2020, 00:31 von FrankyHB.)
Hallo, vielen Dank für die viele Unterstützung,
aber irgendwie klappt das alles nicht.
Ich habe eine Variante für Excel Dateien gefunden welche die gewünschte Datei öffnet bzw. wenn diese schon geöffnet ist eine entsprechende Meldung ausführt.
Sub Test_1()
Dim BoOffen As Boolean Dim WoDatei As Workbook
For Each WoDatei In Workbooks If WoDatei.Name = "Test_1.xlsm" Then MsgBox "Datei ist schon geöffnet!" BoOffen = True Exit For End If Next If BoOffen = False Then Workbooks.Open Filename:="C:\Test\Test_1.xlsm" End If
Sub End
Das klappt mit Excel Datei perfekt - vieleicht kann man das auf Word-Dokumente anpassen.
Gruß Frank
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Frank, wenn Du das mal mit meinem code vergleichst, kannst Du sehen, dass ich auch die offenen Dokumente durchgehe und schaue, ob Deins dabei ist. Ich habe hier mal die Zeile zum maximieren und die Meldung, dass die Datei schon offen ist, eingefügt sowie die Prüfung, ob es die Datei irgendwo gibt, rausgenommen. Code: Option Explicit
Sub WordOeffnen() 'Variablendeklarationen Dim objWordApp As Object, objDoc As Object Dim sDatei As String Dim boOpen As Boolean
'Dateiname festlegen sDatei = "Test.docx"
'Wordobjekt holen oder neu erstellen 'Dazu Fehlerbehandlung, bei Fehler mit naechster Zeile weitermachen On Error Resume Next Set objWordApp = GetObject(, "Word.Application") On Error GoTo 0 'Wenn Wordobjekt geholt werden kann, dann If Not objWordApp Is Nothing Then 'Schleife ueber alle offenen Dateien For Each objDoc In objWordApp.documents '... Dateinamen pruefen. Wenn Datei in Liste, dann Variable auf True setzen. z.B. boOpen = True If objDoc.Name = Right(sDatei, InStr(1, StrReverse(sDatei), "\") - 1) Then boOpen = True 'Ende Schleife ueber alle offenen Dateien Next 'Wenn Wordobjekt nicht geholt werden kann, dann Else 'Word oeffnen Set objWordApp = CreateObject("Word.Application") 'Ende Wenn Wordobjekt geholt werden kann, dann End If objWordApp.Visible = True 'Word sichtbar machen objWordApp.Activate 'und aktivieren 'Wenn Datei nicht offen ist, dann oeffnen, anderenfalls Meldung ausgeben If boOpen = False Then objWordApp.documents.Open sDatei Else MsgBox "Datei schon offen" 'Word-Fenster maximieren objWordApp.ActiveDocument.ActiveWindow.WindowState = 1
End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 25.06.2020
Version(en): 2010
Hallo André,
jetzt klappt alles wie gewünscht.
Vielen vielen Dank an euch alle.
Gruß Frank
|