Ich habe da eine Wordvorlagen, allerdings Version 97, die ich über eine Schaltfläche öffnen will.
Excel medet mir, dass es ungültiges Dateiformat vorliegt.
Sub Schaltfläche187_Klicken() Workbooks.Open "C:\xxxx\Urlaub.dot" End Sub
Die Datei ist gesichert, ich kann sie nicht anpassen. Bei Umspeichern auf dotx wird mir ein Teil des Dokumentes abgeschnitten, weil die Abstände nciht mehr stimmen. Die Sicherung kann ich nicht umgehen, so dass ich das alte Formular verwenden muss.
Wie bekomme ich das hin, dass das Word-Sheet sich über Befehl der Schaltfläche öffnet?
23.12.2015, 14:43 (Dieser Beitrag wurde zuletzt bearbeitet: 24.12.2015, 14:43 von Rabe.)
Hi,
(23.12.2015, 14:35)cuba schrieb: Darum die Frage, wie das geht, dass ich über eine Schaltfläche eine Worddatei öffnen kann.
bei mir klappt es so:
OptionExplicitSub Vorlage_öffnen()
Dim oWord_App AsObjectDim bWordVorhanden AsBooleanOnErrorGoTo OpenError
Set oWord_App = GetObject(Class:="Word.Application") ' Gucken, ob Word offen ist ' alte Vorlage ohne Makros: ' neuer Pfad
oWord_App.Documents.Add Template:="C:\temp\xxx.dotx" _
, NewTemplate:=False, DocumentType:=0
ExitSub
OpenError: ' Word war nicht offen, also dann bitte öffnen OnErrorGoTo CreateError
Set oWord_App = CreateObject(Class:="Word.Application")
oWord_App.Visible = True' Dies gegebenenfalls rausnehmen, wenn man unsichtbar arbeiten will ' Veränderung Uwe Küstner
oWord_App.WindowState = 1' *********
bWordVorhanden = FalseResumeNext
Application.ScreenUpdating = TrueExitSub
CreateError:
' Word ist nicht vorhanden
MsgBox "Kein Word vorhanden"' Word_Connect = False
Application.ScreenUpdating = TrueEndSubSub Dokument_öffnen()
Dim oWord_App AsObjectDim bWordVorhanden AsBooleanDim strFile AsStringOnErrorGoTo OpenError
Set oWord_App = GetObject(Class:="Word.Application") ' Gucken, ob Word offen ist
strFile = Range("G1") ' G1 = Pfad + Dateiname
oWord_App.Documents.Open strFile ' öffnen Word Dokument ExitSub
OpenError: ' Word war nicht offen, also dann bitte öffnen OnErrorGoTo CreateError
Set oWord_App = CreateObject(Class:="Word.Application")
oWord_App.Visible = True' Dies gegebenenfalls rausnehmen, wenn man unsichtbar arbeiten will ' Veränderung Uwe Küstner
oWord_App.WindowState = 1' *********
bWordVorhanden = FalseResumeNext
Application.ScreenUpdating = TrueExitSub
CreateError:
' Word ist nicht vorhanden
MsgBox "Kein Word vorhanden"' Word_Connect = False
Application.ScreenUpdating = TrueEndSub
24.12.2015, 15:06 (Dieser Beitrag wurde zuletzt bearbeitet: 24.12.2015, 15:06 von Rabe.)
(24.12.2015, 13:59)cuba schrieb: Habe die Varianten geprüft, aber das funktioniert nicht. Wo liegt der Fehler?
1.) daß Du nicht meine Makros getestet hast? 2.) hast Du echt die "xxx" in dem Pfad und dem Dateinamen drin?
Ich habe jetzt gerade eben hier nochmal meine oben gezeigten Makros getestet und es funktioniert sowohl mit Vorlage (Pfad und Deiteinamen im Makro), als auch mit 'ner Datei (Pfad und Deiteinamen stehen in G1).
Außerdem solltest Du langsam wissen, daß ein "funktioniert nicht" keine Hinweise zur Lösungsfindung geben kann!
Hier Deine Datei mit meinen bei mir funktionierenden Makros und zwei Buttons:
(24.12.2015, 15:06)Rabe schrieb: 1.) daß Du nicht meine Makros getestet hast? 2.) hast Du echt die "xxx" in dem Pfad und dem Dateinamen drin?
Ich habe jetzt gerade eben hier nochmal meine oben gezeigten Makros getestet und es funktioniert sowohl mit Vorlage (Pfad und Deiteinamen im Makro), als auch mit 'ner Datei (Pfad und Deiteinamen stehen in G1).
Außerdem solltest Du langsam wissen, daß ein "funktioniert nicht" keine Hinweise zur Lösungsfindung geben kann!
Hier Deine Datei mit meinen bei mir funktionierenden Makros und zwei Buttons:
Hallo Ralf
Bitte nicht "böse" sein, aber ich bin nun mal kein VBA'ler.
Auf jeden Fall vielen Dank für Deine Lösungen, sie funktionieren in Deinem Beispiel tatsächlich....
NUR: Wie machst Du den Einstieg? Wenn ich eine Schalffläche erstelle, kommt dann der Code Sub SchaltflächeX_Klicken()
End Sub
Muss ich das alles mit Deienm Code überschreiben oder verstehe ich da etwas total falsch?
24.12.2015, 15:50 (Dieser Beitrag wurde zuletzt bearbeitet: 24.12.2015, 15:50 von Rabe.)
Hi,
(24.12.2015, 15:12)cuba schrieb: Bitte nicht "böse" sein, aber ich bin nun mal kein VBA'ler. ... Muss ich das alles mit Deienm Code überschreiben oder verstehe ich da etwas total falsch?
nene, böse bin ich natürlich nicht. Bei mir passiert bei den Codes von snb auch nur, daß im Taskmanager dann x mal ein Prozeß für Word drin steht. Word wird mit den Dokumenten nicht angezeigt.
Zur VBA Button-Vorgehensweise: Es gibt zwei verschiedene Typen von Schaltflächen:
die als Formular-Steuerelement, die Du genommen hast, wo dann "SchaltflächeX_Klicken" kommt.
Da kannst Du gleich das Makro von mir auswählen
oder als zweite Möglichkeit: Du schreibst dann zwischen das "Sub SchaltflächeX_Klicken()" und das "End Sub" rein: Call Vorlage_öffnen oder Call Dokument_öffnen
oder als dritte Möglichkeit: Du fügst stattdesssen das, was bei meinem Makro zwischen "Sub Vorlage_öffnen()" und "End Sub" steht, ein.
Ich halte die zweite Möglichkeit für die Beste.
die als Active-X Element, das ist ein CommandButton, dort kannst Du dann ebenfalls die zweite oder die dritte Möglichkeit nutzen.
Hier die [ Dateiupload bitte im Forum! So geht es: Klick mich! ] mit Formular-Buttons nach Methode 2 verknüpft.