Supportnet / Forum / Tabellenkalkulation
Word mit bestimmter Vorlage aus Excel 97 heraus öffnen
Frage
Noch ein Problem:
Ich möchte Word mit einer bestimmten Vorlage per Makro aus Excel öffnen. Alle Beispiele die ich dazu gefunden habe, haben zwar Word mit der Vorlage geöffnet, aber die Vorlage als solche und nicht wie üblich bei Word mit einer neuen Datei.
Also Vorlage xx.dot wird als xx.dot geöffnet und nicht als neue Datei. Das Problem ist, wenn ich Speichern wähle, wird bei den gefundenen Beispielen die DOT Datei überschrieben und mir nicht die Auswahl für eine neu zu speichernde Datei angezeigt.
Auch hier Dank im Vorraus für die Helfer.
Antwort 1 von cmkatz
Hi,
kopiere folgenden Code im VB-Editor in Excel in ein neues Modul und weise dieses Makro einem Button zu:
Nur noch "Laufwerk:\genauer Pfad\dateiname.dot" entsprechend ändern, dann sollte es funktionieren.
Hat's geholfen?
Gruß
cmkatz
kopiere folgenden Code im VB-Editor in Excel in ein neues Modul und weise dieses Makro einem Button zu:
Option Explicit
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim wdRG As Word.Range
Sub WordStarten()
Dim strDat As String
Set wdApp = New Word.Application
'genauen Pfad und Dateiname angeben:
Set wdDoc = wdApp.Documents.Add("Laufwerk:\genauer Pfad\dateiname.dot")
wdApp.Visible = True
Set wdDoc = Nothing
Set wdApp = Nothing
End Sub
Nur noch "Laufwerk:\genauer Pfad\dateiname.dot" entsprechend ändern, dann sollte es funktionieren.
Hat's geholfen?
Gruß
cmkatz
Antwort 2 von cmkatz
Nachtrag:
wirst du sicherlich bereits gemacht haben, aber kuck im VB-Editor unter Extras-Verweise, ob "Microsoft Word Library" angehakt ist.
Gruß
cmkatz
wirst du sicherlich bereits gemacht haben, aber kuck im VB-Editor unter Extras-Verweise, ob "Microsoft Word Library" angehakt ist.
Gruß
cmkatz
Antwort 3 von str
und es klappte so wie ich es wollte.
Danke schön.
str
Danke schön.
str
Antwort 4 von shrike
Naja, es geht aber auch auf die einfache Tour...
Entscheidend ist der Schalter /t
(evtl. noch den Pfad für die winword.exe angeben, aber normalerweise wird es auch so gefunden)
mfg, shrike
Sub Word_Vorlage()
Dim ret
ret = Shell("winword.exe /tX:\Vorlagen\Blabla.dot", vbNormalFocus)
End SubEntscheidend ist der Schalter /t
(evtl. noch den Pfad für die winword.exe angeben, aber normalerweise wird es auch so gefunden)
mfg, shrike
Antwort 5 von nighty
hi shrike :)
ich sehe keinen aufruf ?
oder erfolgt der aufruf schon bei der
definition ,ret=xxx ?
ret hat somit 4 byte richtig ?
koennte man auch ret% nehmen,hat ja glaub ich nur ein byte ?
gruss nighty
ich sehe keinen aufruf ?
oder erfolgt der aufruf schon bei der
definition ,ret=xxx ?
ret hat somit 4 byte richtig ?
koennte man auch ret% nehmen,hat ja glaub ich nur ein byte ?
gruss nighty
Antwort 6 von nighty
hi shrike :)
habs ausprobiert :)
aufruf erfolgt wohl schon bei der definition :)
ret% ging auch,doch weiss ich nicht ob nun was verloren gegangen ist ?
gruss nighty
habs ausprobiert :)
aufruf erfolgt wohl schon bei der definition :)
ret% ging auch,doch weiss ich nicht ob nun was verloren gegangen ist ?
gruss nighty
Antwort 7 von shrike
Hi nighty,
Shell(...) ist der Aufruf (eigentlich eine Funktion) und gibt einen Double-Wert zurück. Man könnte den Rückgabewert auch ignorieren und die Funktion so aufrufen:
Shell "winword.exe /tX:\Vorlagen\Blabla.dot"
Das hat aber den Nachteil, daß man keine weiteren Parameter angeben kann (z.B. vbNormalFocus um das Prog zu aktivieren -> Vordergrund). Außerdem kann der Rückgabewert zur Auswertung äußerst nützlich sein. Bei Fehler (Prog nich gefunden oder so) isser 0, ansonsten die Task-ID des Programms (siehe auch Taskmanager). Und die Task-ID kann man ja oftmals gut gebrauchen.
mfg, shrike
Shell(...) ist der Aufruf (eigentlich eine Funktion) und gibt einen Double-Wert zurück. Man könnte den Rückgabewert auch ignorieren und die Funktion so aufrufen:
Shell "winword.exe /tX:\Vorlagen\Blabla.dot"
Das hat aber den Nachteil, daß man keine weiteren Parameter angeben kann (z.B. vbNormalFocus um das Prog zu aktivieren -> Vordergrund). Außerdem kann der Rückgabewert zur Auswertung äußerst nützlich sein. Bei Fehler (Prog nich gefunden oder so) isser 0, ansonsten die Task-ID des Programms (siehe auch Taskmanager). Und die Task-ID kann man ja oftmals gut gebrauchen.
mfg, shrike
Antwort 8 von nighty
hi shrike :)
DANKESCHOEN :)
gruss nighty
DANKESCHOEN :)
gruss nighty
Antwort 9 von cmkatz
Hi,
wenn ich den von shrike genannten Code einsetze und als Makro ausführe, öffnet sich zwar Word, aber ich erhalte dann folgende Fehlermeldung von Word:
Gruß
cmkatz
wenn ich den von shrike genannten Code einsetze und als Makro ausführe, öffnet sich zwar Word, aber ich erhalte dann folgende Fehlermeldung von Word:
Dokumentenname oder Pfad ungültig. Versuchen Sie eine oder mehrere dieser Optionen:
*Überprüfen sie die Dateizugriffsrechte für das Dokument oder Laufwerk.
* Suchen Sie im Dialogfeld "Datei öffnen" nach dem Dokument.
Gruß
cmkatz
Antwort 10 von shrike
Erster Gedanke jedes Windows-Benutzers muß bei so einer Meldung sein (natürlich nach Prüfung, ob die Datei wirklich existiert ;-)
Leerzeichen im Pfad/Dateinamen?(!)
Dann muß der übergebene Name in Anführungszeichen stehen. In Excel etwas tricky, aber einfach:
Man achte auf die genaue Anzahl der Anf.-Zeichen.
shrike
Leerzeichen im Pfad/Dateinamen?(!)
Dann muß der übergebene Name in Anführungszeichen stehen. In Excel etwas tricky, aber einfach:
...
ret = Shell("winword.exe /t""X:\Neue Vorlagen\Bla Bla Bla mit Leerzeichen.dot""", vbNormalFocus)
...Man achte auf die genaue Anzahl der Anf.-Zeichen.
shrike
Antwort 11 von cmkatz
Prima, jetzt geht's, an den Leerzeichen bzw. fehlenden Anführungszeichen hat's gelegen!
Gruß
cmkatz
Gruß
cmkatz

