Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1764to1768
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 ist offen, Datei anzeigen

Word ist offen, Datei anzeigen
21.06.2020 08:43:50
Eberhard
Guten Tag
Es ist vermutlich nicht leicht, aus dem Excel eine Word Datei zu öffnen. Verschwiegen, wenn das Word offen ist, dieses wieder in den Vordergrund zu bekommen. Das öffnen von einer Word Datei habe ich wunderbar hin gekriegt. Nun sollte unterstehende Formel im VBA überprüfen, ob die Datei bereits geöffnet ist, Dies funktioniert auch! Doch wie zum Teufel kann ich machen, dass wenn die Datei offen ist, diese gleich angezeigt wird? Habe X-Varianten gesucht und getestet, aber keine war eine Lösung welche auch funktionierte. Kann mir da vielleicht jemand behilflich sein?
Dim Pfad
Dim WdApp As Object
Dim wdDok As Object
Pfad = Tabelle12.Range("D3").Value
On Error Resume Next
Open Pfad For Binary Access Read Lock Read As 1
Close #1
If Err.Number = 70 Then
'Datei ist offen
Beep
MsgBox Pfad & " ist geöffnet"
Else
Set WdApp = CreateObject("Word.Application")
Set wdDok = WdApp.documents.Open(Filename:=Pfad, ReadOnly:=True)
WdApp.Visible = True
WdApp.Activate
Set wdDok = Nothing
Set WdApp = Nothing
End If
On Error GoTo 0
Zum Voraus, besten Dank für Eure Unterstützung. Bin für ein par Stunden Weg. Aber freue mich Eure Lösungen. Bis bald. Gruss Daniel

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Word ist offen, Datei anzeigen
21.06.2020 09:43:39
Oberschlumpf
Hi Eberhard,
das Einzige, was ich an deinem Code geändert habe:
aus
Pfad = Tabelle12.Range("D3").Value

wurde
Pfad = Sheets("Tabelle12").Range("D3").Value
Ach so, meine einzige "Tabelle1" habe ich noch in "Tabelle12" geändert.
Aber nach Ausführung des Codes wird Word-Datei geöffnet + im Vordergrund angezeigt.
Ciao
Thorsten
AW: Word ist offen, Datei anzeigen
22.06.2020 23:51:08
Eberhard
Guten Abend/Guten Tag
Das erste mal öffnen der Word Datei funktioniert wunderbar. Word geht auch in den Vordergrund. Wechsle ich wieder zu Excel, betätige den Button erneut, sollte anstelle der MsgBox die geöffnete Word Datei wieder in den Vordergrund. Vermutlich hat da niemand eine Lösung welche auch funktioniert? Habe schon viele aus dem Netz versucht. Leider ohne Erfolg! Oder gibt es da doch noch irgendwo ein grünes Licht? Gruss Daniel
Anzeige
AW: Word ist offen, Datei anzeigen
23.06.2020 18:39:49
ralf_b
wenn du das nicht machst
Set wdDok = Nothing
Set WdApp = Nothing
dann kannst du mittels wdapp.activate das Word wieder in den Vordergrund holen. Das vermute ich jetzt aber nur.
Solange du eine Objektvariable für deine Wordatei hast, dann kannst du auch was damit anstellen. Wenn du sie aber mit = nothing eliminierst, ist sie futsch.
AW: Word ist offen, Datei anzeigen
23.06.2020 19:06:12
Eberhard
Hallo ralf_b
Danke für die Info. Aber da ich nicht grosse Ahnung von VBA habe, weis ich nicht genau was Du damit meinst? Im Code stehen die Zeilen
Set wdDok = Nothing
Set WdApp = Nothing

ja geschrieben! Füge ich diese unter die Zeile
If Err.Number = 70 Then

passiert nichts!
Anzeige
AW: Word ist offen, Datei anzeigen
23.06.2020 22:06:03
ralf_b
Eine Objektvariable wird benötigt um ein Objekt ( Worksheet, Workbook, Application, Range, usw) für dich im Program nutzbar zu machen.
wdDok ist dein Wordokument, wdapp ist dein Wordprogramm.
Mit nothing werden diese Variablen freigegeben, d.h. die Variablen existieren nicht mehr. Eine Objektvariable wird am Ende eine Function oder Sub mit nothing freigegeben um sicherzustellen das sie nicht noch irgendwie im Programmverlauf stören und der Speicherbereich dafür anderweitig verwendet werden kann. Das passiert zwar automatisch am Ende einer Funktion aber meist wird das händisch trotzdem noch gemacht.
Da du deine Worddatei nochmal benötigst um sie wieder anzuzeigen, solltest du die Objektvariable nicht freigeben. Das gilt aber nur solange du immer noch in der selben Function oder Sub(Methode) bist. Wenn du in anderen Funktionen auf die Variable zugreifen möchtest muss sie Objektvariable ausserhalb einer Funktion als globale Variable deklariert werden.
Diese Zusammenhänge sind Grundwissen und wenn du mit vba zurechtkommen möchtest, dann wirds Zeit das Vokabular zu verinnerlichen. Es nicht mal eben damit getan sich irgendwo ein bissel code zu besorgen und das wars dann.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige