Discussion:
Word-Datei aus Word-VBA öffnen und einfügen?
(zu alt für eine Antwort)
Florian Zille
2005-03-07 09:53:01 UTC
Permalink
Hallo,

wie kann ich aus einem Word-VBA Makro eine Datei öffnen und den kompletten
Inhalt dieser Datei in die aktuelle Datei einfügen?

Wie kann ich ein Makro beim öffnen der Datei automatisch starten lassen?

Florian
Thomas Gahler
2005-03-07 10:26:37 UTC
Permalink
Hallo Florian
Post by Florian Zille
wie kann ich aus einem Word-VBA Makro eine Datei öffnen und den kompletten
Inhalt dieser Datei in die aktuelle Datei einfügen?
Dazu ist die '.InsertFile'-Methode zuständig (mach mal einen Blick auf die
Hilfe)

- Selection.InsertFile FileName:="test2.doc", _
Range:="", ConfirmConversions:=True, _
Link:=False, Attachment:=False
Post by Florian Zille
Wie kann ich ein Makro beim öffnen der Datei automatisch starten lassen?
Das Makro muss den Namen 'AutoOpen()' heissen.



--
Thomas Gahler
MVP für WordVBA

- Windows XP (SP1), Office XP (SP3)
Florian Zille
2005-03-07 10:43:02 UTC
Permalink
Hallo nochmals,

wenn ich das Makro starte, erhalte ich folgende Fehlermeldung:

"Laufzeitfehler 6058: Word kann das Dokument nicht öffnen: der Benutzer
besitzt kein Zugriffsrecht"

Wie kann ich diese Problem beheben?

Gruß
Florian
Post by Thomas Gahler
Hallo Florian
Post by Florian Zille
wie kann ich aus einem Word-VBA Makro eine Datei öffnen und den kompletten
Inhalt dieser Datei in die aktuelle Datei einfügen?
Dazu ist die '.InsertFile'-Methode zuständig (mach mal einen Blick auf die
Hilfe)
- Selection.InsertFile FileName:="test2.doc", _
Range:="", ConfirmConversions:=True, _
Link:=False, Attachment:=False
Post by Florian Zille
Wie kann ich ein Makro beim öffnen der Datei automatisch starten lassen?
Das Makro muss den Namen 'AutoOpen()' heissen.
--
Thomas Gahler
MVP für WordVBA
- Windows XP (SP1), Office XP (SP3)
Thomas Gahler
2005-03-07 11:57:35 UTC
Permalink
Hallo Florian
Post by Florian Zille
"Laufzeitfehler 6058: Word kann das Dokument nicht öffnen: der Benutzer
besitzt kein Zugriffsrecht"
- Kannst du die betroffenen Dateien überhaut manuelle öffnen (Datei ->
Öffnen)
- kannst du die Datei manuell einfügen (Einfügen -> Datei...)

- kannst du mal die betreffenden Codezeilen hier posten



--
Thomas Gahler
MVP für WordVBA

- Windows XP (SP1), Office XP (SP3)
Florian Zille
2005-03-07 13:45:05 UTC
Permalink
manuell kann ich die datei einfügen.

hier der quellcode:

Option Explicit
Sub AutoOpen()

'Variablen deklarieren
Dim Pfad
Dim Dateiname
Dim NeuesteDatei
Dim fdt

'Aktuelleste Datei ermitteln
Pfad = "D:\Daten\Project Portal\Makros\Word\"
Dateiname = Dir(Pfad & "Status_KW*.doc")

Do While Dateiname <> ""
If FileDateTime(Pfad & Dateiname) > fdt Then
fdt = FileDateTime(Pfad & Dateiname)
NeuesteDatei = Pfad & Dateiname
End If
Dateiname = Dir()
Loop

'Inhalt der Datei "Intranet_Newest_File.doc" komplett löschen
Selection.WholeStory
Selection.Delete Unit:=wdCharacter, Count:=1

'Aktuellste Datei öffnen, alles auswählen und einfügen
Selection.InsertFile FileName:=Pfad & Dateiname, Range:="", _
ConfirmConversions:=True, Link:=False, Attachment:=False

'Datei speichern
ActiveDocument.Save



End Sub
Post by Thomas Gahler
Hallo Florian
Post by Florian Zille
"Laufzeitfehler 6058: Word kann das Dokument nicht öffnen: der Benutzer
besitzt kein Zugriffsrecht"
- Kannst du die betroffenen Dateien überhaut manuelle öffnen (Datei ->
Öffnen)
- kannst du die Datei manuell einfügen (Einfügen -> Datei...)
- kannst du mal die betreffenden Codezeilen hier posten
--
Thomas Gahler
MVP für WordVBA
- Windows XP (SP1), Office XP (SP3)
Florian Zille
2005-03-08 13:27:05 UTC
Permalink
suche immer noch nach dem fehler...
Post by Thomas Gahler
Hallo Florian
Post by Florian Zille
"Laufzeitfehler 6058: Word kann das Dokument nicht öffnen: der Benutzer
besitzt kein Zugriffsrecht"
- Kannst du die betroffenen Dateien überhaut manuelle öffnen (Datei ->
Öffnen)
- kannst du die Datei manuell einfügen (Einfügen -> Datei...)
- kannst du mal die betreffenden Codezeilen hier posten
--
Thomas Gahler
MVP für WordVBA
- Windows XP (SP1), Office XP (SP3)
Christian Freßdorf
2005-03-08 13:33:35 UTC
Permalink
Hallo Florian,

deklarier mal alle Variablen sauber, denn laut Beispiel sind alle vom Typ
"Variant" und das kann schon mal "unpassend" sein.

'Variablen deklarieren
Dim Pfad
Dim Dateiname
Dim NeuesteDatei
Dim fdt

Und da Du Leerzeichen im PFad hast, prüfe die Dateinamen mal mittels
Debug.Print an geeigneter Stelle, ob der überhaupt vollständig
durchgereicht wird.
--
Gruß Christian
~~~~~~~~~~~~
=> http://www.fruiture.de/perl/questions.html#intro
=> http://word.mvps.org
Florian Zille
2005-03-08 13:57:06 UTC
Permalink
das war es nicht. hab inzwischen den fehler beheben können:

Bei
'Aktuellste Datei öffnen, alles auswählen und einfügen
Selection.InsertFile FileName:=NeuesteDatei, Range:="", _
ConfirmConversions:=True, Link:=False, Attachment:=False
Post by Christian Freßdorf
Hallo Florian,
deklarier mal alle Variablen sauber, denn laut Beispiel sind alle vom Typ
"Variant" und das kann schon mal "unpassend" sein.
'Variablen deklarieren
Dim Pfad
Dim Dateiname
Dim NeuesteDatei
Dim fdt
Und da Du Leerzeichen im PFad hast, prüfe die Dateinamen mal mittels
Debug.Print an geeigneter Stelle, ob der überhaupt vollständig
durchgereicht wird.
--
Gruß Christian
~~~~~~~~~~~~
=> http://www.fruiture.de/perl/questions.html#intro
=> http://word.mvps.org
Florian Zille
2005-03-08 13:59:02 UTC
Permalink
das war es nicht. hab inzwischen den Fehler selbst gefunden

Bei
'Aktuellste Datei öffnen, alles auswählen und einfügen
Selection.InsertFile FileName:= Pfad & Datei, Range:="", _
ConfirmConversions:=True, Link:=False, Attachment:=False

muß es

'Aktuellste Datei öffnen, alles auswählen und einfügen
Selection.InsertFile FileName:=NeuesteDatei, Range:="", _
ConfirmConversions:=True, Link:=False, Attachment:=False

heissen. Trotzdem Danke für die Hilfe!
Post by Christian Freßdorf
Hallo Florian,
deklarier mal alle Variablen sauber, denn laut Beispiel sind alle vom Typ
"Variant" und das kann schon mal "unpassend" sein.
'Variablen deklarieren
Dim Pfad
Dim Dateiname
Dim NeuesteDatei
Dim fdt
Und da Du Leerzeichen im PFad hast, prüfe die Dateinamen mal mittels
Debug.Print an geeigneter Stelle, ob der überhaupt vollständig
durchgereicht wird.
--
Gruß Christian
~~~~~~~~~~~~
=> http://www.fruiture.de/perl/questions.html#intro
=> http://word.mvps.org
Gianni Fasciati
2006-03-16 14:04:27 UTC
Permalink
Post by Thomas Gahler
Hallo Florian
Post by Florian Zille
wie kann ich aus einem Word-VBA Makro eine Datei öffnen und den kompletten
Inhalt dieser Datei in die aktuelle Datei einfügen?
Dazu ist die '.InsertFile'-Methode zuständig (mach mal einen Blick auf die
Hilfe)
- Selection.InsertFile FileName:="test2.doc", _
Range:="", ConfirmConversions:=True, _
Link:=False, Attachment:=False
Post by Florian Zille
Wie kann ich ein Makro beim öffnen der Datei automatisch starten lassen?
Das Makro muss den Namen 'AutoOpen()' heissen.
--
Thomas Gahler
MVP für WordVBA
- Windows XP (SP1), Office XP (SP3)
Hallo Thomas
Frage zum Makro 'AutoOpen()'

Ich habe eine Word-Vorlage für ein Word-Formular erstellt, in dem über
DDE-Felder Daten aus einem Datenbank-Programm (duch Betätigung der
entsprechenden Befehllschaltfläche im DB-Programm) eingefügt werden. Damit
dies gelich beim Öffnen des Formulars erfolgen soll, habe ich mein Makro,
dass die DDE-Felder aktualisiert "AutoOpen" benannt. Falls ich die Vorlage
über Word öffne wird das Makro ausgeführt, falls ich aber ein ".doc" aus der
Vorlage erstelle funktioniert es nicht mehr. Wie kann ich das Makro auch in
einem Dokument zum laufen bringen, das aus der Vorlage erstellt wird, in der
sich das Makro befindet?

Das Makro habe ich übrigens mit der Makro-Aufzeichnungsfunktion erstellt,
ich verstehe nichts von VBA-Programmierung.

Gianni Fasciati
Thomas Gahler
2006-03-16 16:16:32 UTC
Permalink
Hallo Gianni
Post by Gianni Fasciati
dies gelich beim Öffnen des Formulars erfolgen soll, habe ich mein Makro,
dass die DDE-Felder aktualisiert "AutoOpen" benannt. Falls ich die Vorlage
über Word öffne wird das Makro ausgeführt, falls ich aber ein ".doc" aus der
Vorlage erstelle funktioniert es nicht mehr.
Dann muss das Makro 'AutoNew()' heissen...




--
Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)

- Windows XP (SP1), Office XP (SP3)
Gianni Fasciati
2006-03-17 09:22:26 UTC
Permalink
Hallo Thomas
Post by Thomas Gahler
Post by Gianni Fasciati
dies gelich beim Öffnen des Formulars erfolgen soll, habe ich mein Makro,
dass die DDE-Felder aktualisiert "AutoOpen" benannt. Falls ich die Vorlage
über Word öffne wird das Makro ausgeführt, falls ich aber ein ".doc" aus
der
Post by Gianni Fasciati
Vorlage erstelle funktioniert es nicht mehr.
Dann muss das Makro 'AutoNew()' heissen...
Das Makro 'AutoNew' (siehe unten) funktioniert zwar wenn ich das ".doc" mit
Öffnen aus dem Windows-Explorer erstelle. Wird die Vorlage aber aus dem
Datenbank-Programm (Sokrates) aufgerufen, funktioniert es aber nicht.

Sub AutoNew()
'
' AutoNew Makro
' Makro aufgezeichnet am 03.02.2006 von ewp
'
Selection.Fields.Update
Selection.MoveDown Unit:=wdLine, Count:=4
Selection.MoveDown Unit:=wdLine, Count:=4, Extend:=wdExtend
Selection.Fields.Update
Selection.MoveDown Unit:=wdLine, Count:=2, Extend:=wdExtend
Selection.MoveDown Unit:=wdLine, Count:=2
Selection.MoveDown Unit:=wdLine, Count:=4, Extend:=wdExtend
ActiveWindow.ActivePane.SmallScroll Down:=17
Selection.Fields.Update
Selection.WholeStory
ActiveDocument.Sections(1).ProtectedForForms = False
ActiveDocument.Sections(2).ProtectedForForms = False
ActiveDocument.Sections(3).ProtectedForForms = True
ActiveDocument.Sections(4).ProtectedForForms = False
ActiveDocument.Sections(5).ProtectedForForms = True
ActiveDocument.Sections(6).ProtectedForForms = False
ActiveDocument.Sections(7).ProtectedForForms = True
ActiveDocument.Sections(8).ProtectedForForms = False
ActiveDocument.Sections(9).ProtectedForForms = True
ActiveDocument.Sections(10).ProtectedForForms = False
ActiveDocument.Sections(11).ProtectedForForms = True
ActiveDocument.Sections(12).ProtectedForForms = True
ActiveDocument.Sections(13).ProtectedForForms = True
ActiveDocument.Protect Password:="PLBtest", NoReset:=False, Type:= _
wdAllowOnlyFormFields
End Sub

Loading...