Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

geöffnete Worddatei und Word aus Excel beenden


Betrifft: geöffnete Worddatei und Word aus Excel beenden von: Peter
Geschrieben am: 27.09.2019 20:03:09

Hallo,

könnt ihr mir bitte mitteilen, wie ich eine über UF geöffnete Worddatei mittels Button speichern ohne Abfrage, schliessen und Word beenden sofern keine weitere Worddatei geöffnet ist.

Besten Dank für eure Hilfe.

Gruss
Peter

  

Betrifft: AW: geöffnete Worddatei und Word aus Excel beenden von: Oberschlumpf
Geschrieben am: 28.09.2019 07:33:22

Hi Peter,

hier, versuch mal:
https://www.herber.de/bbs/user/132253.xlsm

Ich hab kein Userform verwendet, sondern die 2 Button direkt in der Tabelle platziert.
Da aber, so wie es aussieht (Eigenschaften, Methoden,...), sowohl in Userform wie auch in der Tabelle ActiveX-Controls verwendet werden, ist das nicht vorhandene Userform nicht so wichtig.

Nach Klick auf den Öffnen-Button wirst du aufgefordert, eine Word-Datei auszuwählen, die dann geöffnet wird.
Word mit der Datei wird sichtbar geöffnet; du könntest direkt in Word Änderungen vornehmen.
(ich weiß nicht, wie bei dir die Word-Datei geöffnet/geändert wird, da du dazu keine Infos hinterlassen hast)

Nach Klick auf den Schließen-Button in Excel wird die zuvor geöffnete Word-Datei ohne Rückfrage gespeichert + geschlossen.
Wenn keine weiteren Word-Dateien (in der selben Word-Instanz) geöffnet sind, wird auch Word geschlossen. Wenn noch mind. eine weitere Word-Datei geöffnet ist, wird Word nicht geschlossen.

Hilfts?

Ciao
Thorsten


  

Betrifft: AW: geöffnete Worddatei und Word aus Excel beenden von: Peter
Geschrieben am: 28.09.2019 10:56:29

Hallo Thorsten,

besten Dank für Deine Hilfe.

Leider kann ich es nicht umsetzten auf meine Bedürfnisse.

Die Anweisung zum Öffnen meiner Worddatei anbei:


'gewählte Worddatei öffnen
<pre>Private Sub CommandButton4_Click()
Dim DieDatei As Boolean
Dim DeinDateiname As String
Dim wordObj As Word.Application


If Me.TextBox2 = "" Then
Label7.Caption = "Bitte Worddatei auswählen"
Exit Sub
Else

DieDatei = IstDateiOffen2(Me.TextBox2.Value)

If DieDatei = True Then
' MsgBox "Datei ist schon geöffnet"
Label7.Caption = "Datei ist schon geöffnet" & vbLf & "Vorgang beendet"
CommandButton6.Visible = True
Exit Sub
Else
' MsgBox "Datei ist noch nicht geöffnet"
Label7.Caption = "Datei ist noch nicht geöffnet" & vbLf & "wird geöffnet"

DeinDateiname = Me.TextBox2.Value
Set wordObj = CreateObject("Word.Application")
wordObj.Visible = True
wordObj.Documents.Open DeinDateiname

Set wordObj = Nothing

''' Me.TextBox2 = "" 'nicht leeren da für Übertragung in Worddatei erforderlich
''' Me.ComboBox1 = "" 'nicht leeren da für Übertragung in Worddatei erforderlich
CommandButton6.Visible = True
End If
End If
End Sub</pre>

'eingebaut in o. a. Code: CommandButton4_Click
Function IstDateiOffen2(Dateiname As String) As Boolean

Dim DateiNr As Long
Dim FehlerNr As Long

On Error Resume Next
DateiNr = FreeFile()

Open Dateiname For Input Lock Read As #DateiNr
Close DateiNr
FehlerNr = Err
On Error GoTo 0

Select Case FehlerNr
Case 0
IstDateiOffen2 = False
Case 70
IstDateiOffen2 = True
Case Else
Error FehlerNr
End Select

End Function</pre>


Kannst Du mir bitte das Speichern, schliessen und beenden von Word mittels den o.a. Daten erstellen?

Besten Dank.

Gruss
Peter


  

Betrifft: AW: geöffnete Worddatei und Word aus Excel beenden von: Oberschlumpf
Geschrieben am: 28.09.2019 11:02:55

Hi Peter,

nöö, kann ich so leider nicht umsetzen.
Bitte zeig uns eine Bsp-Datei mit deinem VBA-Code. Vielleicht kann man dann besser helfen.

Ciao
Thorsten


  

Betrifft: AW: geöffnete Worddatei und Word aus Excel beenden von: Peter
Geschrieben am: 28.09.2019 11:18:14

Hallo Thorsten,

leider kann ich die Datei nicht übersenden - zu gross und interne Daten.

Folgenden Code habe ich nachgebaut:


<pre>Private Sub CommandButton12_Click()
Dim wordObj As Word.Application
Dim DeinDateiname As String

DeinDateiname = Me.TextBox2.Value


wordObj.Documents(DeinDateiname).Close SaveChanges:=True

If wordObj.Documents.Count = 0 Then
wordObj.Quit
End If
Set wordObj = Nothing

End Sub</pre>


Die Zeile "wordObj.Documents(DeinDateiname).Close SaveChanges:=True" ergibt folgende Meldung:

Laufzeitfehler 91 Objektvariable oder With-Blockvariable nicht festgelegt.

Kannst Du mir hierbei bitte helfen?

Gruss
Peter


  

Betrifft: sorry, aber... von: Oberschlumpf
Geschrieben am: 28.09.2019 11:56:20

Hi Peter,

...du könntest eine kleine Bsp-Datei mit Bsp-Daten erstellen und diese per Upload hier zeigen.

Denn nur du weißt, wie deine Datei(en) aufgebaut sind; und ich bin sicher, die - kleine - Bsp-Datei würde vom Aufbau her genau so oder zumindest sehr ähnlich der Originaldatei sein.

Ich hatte es schon öfter erlebt, dass Dateien, von mir "nachgebaut", den jeweils Fragenden nicht helfen konnten, weil sie den VBA-Code nicht an ihre Datei(en) anpassen konnten (andere Zellen, andere Blattnamen, etc).
Meine Hilfe war damit nicht nur, wie üblich, gratis, sondern zudem noch umsonst.

Aber nix desto trotz wünsch ich dir weiter viel Erfolg.

Ciao
Thorsten


  

Betrifft: AW:anbei Datei von: Peter
Geschrieben am: 28.09.2019 18:44:39

Hallo Thorsten,

ich habe die Datei leicht geändert. Sie ist normalerweise wie die Worddatei in einem Ordner. Nur diesen kann ich nicht hochladen.

Die Worddatei liegt auf dem Desktop für den Test

anbei die Datei: https://www.herber.de/bbs/user/132269.xlsm

Gruss
Peter


  

Betrifft: Das ist klar, da du... von: Case
Geschrieben am: 28.09.2019 19:33:12

Hallo Peter, :-)

... in deinem "Private Sub CommandButton4_Click()" die Wordinstanz erstellst, das Worddokument öffnest und dann aber die Objektvariable auf Nothing "Set wordObj = Nothing" setzt. Damit verlierst du die Verbindung zur Instanz! ;-)

Kann dir im Moment nur zeigen, wie du es richtig machst - zum einbauen in deinen Code habe ich keine Zeit: ;-)

Da siehst du wie Word und ein Dokument geöffnet werden und bei Bedarf wieder geschlossen.

Hier wird dir das Prinzip gezeigt...

Servus
Case



  

Betrifft: AW: Prüfproblem gelöst von: Peter
Geschrieben am: 29.09.2019 09:02:44

Hallo Case,

besten Dank für Deine Hilfe. Ich habe das von Dir aufgeführte Muster umgebaut für meine Bedürfnisse.

Es funktioniert jetzt einwandfrei.

Gruss
Peter


  

Betrifft: AW: AW:anbei Datei von: Oberschlumpf
Geschrieben am: 28.09.2019 19:54:56

Hi Peter,

1. ich habe deine Datei geöffnet
2. habe erst mal den Pfad zum Desktop angepasst
3. habe jetzt dein Userform gestartet
4. habe in der ComboBox die Test-Datei ausgewählt (im Textfeld wird auch der richtige Pfad gezeigt)
5. habe auf den Button "gewählte Worddatei öffnen" geklickt
wie gewünscht wird in Word die Test-Worddatei geöffnet; Word wird im Vordergrund angezeigt
6. der Button "Übertrag in geöffnete Worddatei" ist deaktiviert, also klicke ich auf den Button "gewählte Worddatei schliessen"
die Word-Datei wird geschlossen, und auch Word selbst wird beendet

Eigentlich funktioniert doch erst mal alles fast so wie gewünscht.
(ich denke, dass Word im Vordergrund ist, muss so nicht sein, oder?)

Und eigentlich hat Case recht, dass mit Zuweisung von Nothing eine Objekt-Variable die Verbindung zum Objekt, in diesem Fall Word, verliert.
Aber wie gesagt, auf meinem Computer funktioniert alles.

Auch die von dir erwähnten Fehlermeldungen mit Nr 91 + 4160 erscheinen bei mir nicht.

Wie genau soll es nun weitergehen?

Ciao
Thorsten

P.S. ich nutze Office 2016


  

Betrifft: AW: AW: bei mir weiterhin Fehler von: Peter
Geschrieben am: 28.09.2019 20:18:21

Hallo Thorsten,

welchen Pfad hast Du hier angepasst?

Mein Pfad zum Öffnen lautet: C:\Users\Peter\Desktop\Dies ist ein Test.docm wie in TextBox2 angezeigt.

Ich habe jetzt die Zeile: SeSet wordObj = Nothing beim Button öffnen deaktiviert.

Trotzdem Fehlermeldung Laufzeitfehler 4160 ungültiger Dateiname.

Wenn ich mit dem Cursor bei laufendem Makro über die Zeile:

wordObj.Documents(DeinDateiname).Close SaveChanges:=True 'Laufzeitfehler 4160 ungültiger Dateiname

fahre wird der richtige Pfad mit Dateiname angezeigt.

Was soll ich bitte jetzt machen?

Gruss
Peter





  

Betrifft: AW: AW: bei mir weiterhin Fehler von: Oberschlumpf
Geschrieben am: 28.09.2019 20:27:51

Hi Peter,

welchen Pfad hast Du hier angepasst?

Na, aus deinem Pfad "C:\Users\Peter\Desktop\..." habe ich "C:\Users\UserGobi\Desktop\..." gemacht, weil es auf meinem PC keinen User Peter gibt ;-)

Ich weiß leider nicht, was du noch machen könntest. Da ja auf meinem PC soweit alles funktioniert, müsste ich auf deinen PC schauen können, was genau wann und warum passiert.

Ciao
Thorsten


Beiträge aus dem Excel-Forum zum Thema "geöffnete Worddatei und Word aus Excel beenden"