Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
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

Excel aus Word heraus starten

Excel aus Word heraus starten
Johannes
Hi,
ich habe ein Problem wenn ich aus Word heraus per Makro eine Excelmappe öffnen möchte. Das Ganze funktioniert problemlos wenn Excel vor dem Ausführen des Makros bereits geöffnet ist. Doch wenn Word Excel öffnen muss, kriegt Word nicht mit, dass Excel dann offen ist und führt den Code fehlerhaft aus. Excel wird in dem Fall im Taskmanager zwar als Prozess nicht aber als Anwendung geführt. Ich habe auch schon andere Varianten über shell probiert hat aber auch nicht funktioniert. Wo müsste ich suchen?
OS ist Win7 HomePremium 64bit
Danke für eure Hilfe.
Gruß Johannes
Sub Öffnen()
Dim xclApp As Object
Dim xclWbk As Object
Dim xclSht As Object
Set xclApp = GetObject(, "Excel.Application") 'Excel holen nicht neu starten
If xclApp Is Nothing Then 'Excel wird neue gestartet falls noch nicht offen
Set xclApp = CreateObject("Excel.Application")
End If
With xclApp
Set xclWbk = xclApp.Workbooks.Open("E:\test.xlsx")
End With
xclWbk.Close = 2  'Workbook schließen und Speichern?   (xlSaveChanges = 1; xlDoNotSaveChanges =  _
2)
Set xclSht = Nothing 'Variable zurücksetzen
Set xclWbk = Nothing 'Variable zurücksetzen
End Sub

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

Betreff
Benutzer
Anzeige
Ich SEHE was, was Du nicht siehst...
23.11.2011 14:42:41
NoNet
Hallo Johannes,
dieser Lapsus ist mir neulich auch passiert - siehe hier :
https://www.herber.de/forum/archiv/1236to1240/t1237475.htm#1237499
Du musst in Deinem Code noch diese Zeile (unterhalb End With) einfügen, um die EXCEL-Anwendung auch SICHTBAR zu machen :
xclApp.visible=true 'Excel-Instanz anzeigen
Gruß, NoNet
AW: Ich SEHE was, was Du nicht siehst...
23.11.2011 15:10:33
Johannes
Hi NoNet,
zum Glück hat der Wald so viele Bäume, da sind für alle welche da. Ich bin lieber die Nummer 2, das geht schneller ;-)
Danke
Gruß Joni
Anzeige
Was mich wundert ...
23.11.2011 18:39:24
IngGi
Hallo zusammen,
müsste die Codezeile
Set xclApp = GetObject(, "Excel.Application")
nicht eigentlich auf einen Laufzeitfehler laufen, wenn keine bestehende Excelinstanz verfügbar ist?
Gruß Ingolf
AW: Was mich ebenfalls wundert ...
24.11.2011 00:21:12
NoNet
Hallo Ingolf,
was MICH an Deiner Frage wundert
nicht eigentlich auf einen Laufzeitfehler laufen, wenn keine bestehende Excelinstanz verfügbar ist?
Weshalb sollte denn KEINE Excel-Instanz laufen ?
Es wird in Johannes' Code ja zuerst überprüft, OB eine Excel-Instanz läuft und falls NICHT, wird eben eine erzeugt (neudeutsch: kreiert ;-)
Set xclApp = CreateObject("Excel.Application")

Spätestens JETZT() sollte eine Excel-Instanz laufen, ansonsten hat der PC ein ganz anderes Problemchen ;-)
Gruß, NoNet
Anzeige
AW: Was mich ebenfalls wundert ...
24.11.2011 09:16:04
IngGi
Hallo NoNet,
Weshalb sollte denn KEINE Excel-Instanz laufen ?
Es wird in Johannes' Code ja zuerst überprüft, OB eine Excel-Instanz läuft und falls NICHT, wird eben eine erzeugt
Richtig, es wird gegebenenfalls eine neue Excelinstanz erzeugt. Aber zum Zeitpunkt der Prüfung läuft eben möglicherweise noch keine Excelinstanz. Und dann erzeugt der Versuch, mit GetObject eine laufende Excelinstanz in die Variable zu übernehmen einen Laufzeitfehler 429 - Objekterstellung durch ActiveX-Komponente nicht möglich.
Das müsste mit einer On Error Resume Next - Anweisung umgangen werden:

On Error Resume Next
Set xclApp = GetObject(, "Excel.Application") 'Excel holen nicht neu starten
On Error Goto 0
If xclApp Is Nothing Then 'Excel wird neue gestartet falls noch nicht offen
Set xclApp = CreateObject("Excel.Application")
End If
Gruß Ingolf
Anzeige
AW: Was mich ebenfalls wundert ...
24.11.2011 11:46:07
Johannes
Hallo Ingolf,
der Eintrag On Error Resume Next ist vorhanden. Meinen Code habe ich nur etwas gekürzt, um das ganze einfacher lesbar zu machen. Dem ist dann wohl auch diese Zeile zum Opfer geworden (sorry mein Fehler - hat hoffentlich nicht zu viel Verwirrung gestifftet).
Super, dass sich hier die Forumsteilnehmer so genau mit den Themen beschäftigen.
Gruß an dich und NoNet.
Johannes

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige