Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1684to1688
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
Word Dokument über Excel VBA speichern
18.04.2019 07:46:42
Marcel
Guten Morgen,
vielleicht könnt ihr mir ja weiterhelfen.
Ich habe mir eine Art kleine Datenbank über Excel erstellt, die soweit auch super funktioniert nur hapert es daran bestimmte Einträge die ich in einer Listbox makiere(per Doppelklick), welche dann in Textboxen übernommen werden, in ein Word Dokument zu übernehmen und dann zu speichern.
Hier mal mein Problem und dafür hier mal meine Programmierung bisher:
1. Über ein Button wird ein Ordner erstellt der mit bestimmten Werten der Textboxinhalte _ angelegt wird.

Private Sub cb_Ordner_Click()
Dim Dateiname As String
If ListBox1.ListIndex > -1 Then
Dateiname = TextBox2 & "_" & TextBox3 & "_" & TextBox4
If Dir(ThisWorkbook.path & "\" & Dateiname, vbDirectory) = "" Then
MkDir ThisWorkbook.path & "\" & Dateiname
MsgBox "Sie haben den Ordner: " & Dateiname & " erstellt!"
Else
MsgBox "Dieser Ordner existiert bereits!"
End If
Else
MsgBox "Wählen Sie ein Datensatz aus!"
End If
End Sub

2. Nun würde ich gern diesen makierten Bereich aus der Listbox in ein Word Dokument speichern wollen(über einen Button)
- Dafür habe ich ein Dokument welches bereists vorgeschrieben ist.
- Nutze dafür Textfelder Formularsteuerelemente(obwohl mich das graue Kästchenstört ;-))
Es klappt soweit das er den Wert der Textbox übernimmt und in das Word Dokument schreibt aber _ dabei wird das Word Dokument schreibgeschützt. Das sollte irgendwie nicht sein und dazu muss ich es erst öffnen.

Private Sub cb_PAdd_Click1()
Dim PathFile As String
Dim objWDApp As Object
Dim objWDDoc As Object
PathFile = ThisWorkbook.path & Application.PathSeparator & _
"Test1.docx"
Set objWDApp = OffApp("Word", True)
If Not objWDApp Is Nothing Then
Set objWDDoc = objWDApp.Documents.Open(PathFile, ReadOnly:=True)
With objWDDoc
.FormFields("Text1").Result = TextBox1.Value
End With
End If
objWDApp.Visible = True

Frage dazu:
Wie bekomme ich es hin das aus der Vorgefertigten Word Datei sich die Felder füllen, dabei das Dokument nicht Schreibgeschützt ist und es sich ohne vorher zu öffnen in dem Ordner(der vorher angelegt wurde), abzuspeichern? Dazu soll die Neue Worddatei einen bestimmten Namen der Textfelder haben(also Speichern unter:)... wie beim Anlegen der Ordner.
Ich freu mich auf eure Hilfe
Lieben Dank Marcel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW:ReadOnly
18.04.2019 08:32:08
Fennek
Hallo,
wenn man eine Datei so öffnet:

Open(PathFile, ReadOnly:=True)
darf man sich über "ReadOnly" nicht wundern.
Es hilft, die Befehle zum Speichern zuerst in Word auszuprobieren ("doc.SaveAs2 Pfad&Name") und dann den Code in den XL-Code zu übernehmen.
mfg
AW: AW:ReadOnly
18.04.2019 08:57:39
Marcel
Hallo Fennek,
ja manchmal sieht man den Wald vor lauter Bäumen nicht.
Ich schaue gleich mal nach.
Gruß
Marcel
AW: AW:ReadOnly
18.04.2019 09:25:13
Marcel
Jetzt passt das mit dem Schreibgeschützten Dokument ;-)
Wie speichere ich denn das jetzt offene Dokument(Word) in einem anderen Ordner ab, ohne die Grunddatei zu überschreiben?
Gruß
Marcel
Anzeige
AW: AW:ReadOnly
18.04.2019 09:33:26
Nepumuk
Hallo Marcel,
das hat dir doch Fennek schon geschrieben:
DeinDoc.SaveAs2 FileName:="DeinPfad", FileFormat:=wdFormatXMLDocument
Gruß
Nepumuk
AW: AW:ReadOnly
18.04.2019 09:35:52
Marcel
Oh ok, vielen Dank
Gruß
AW: AW:ReadOnly
18.04.2019 11:31:57
Marcel
Vielen Dank euch.
Ich habe das jetzt so umgesetzt.
Private Sub cb_PAdd_Click()
Dim PathFile As String
Dim objWDApp As Object
Dim objWDDoc As Object
Dim Pfad As String
Dim Dateiname As String
PathFile = ThisWorkbook.path & Application.PathSeparator & _
"Test1.docx"
Set objWDApp = OffApp("Word", True)
If Not objWDApp Is Nothing Then
Set objWDDoc = objWDApp.documents.Open(PathFile, True)
Dateiname = TextBox2 & "_" & TextBox3 & "_" & TextBox4
If Dir(ThisWorkbook.path & "\" & Dateiname, vbDirectory) = "" Then
MkDir ThisWorkbook.path & "\" & Dateiname
MsgBox "Es wurde ein Ordner für die ID: " & TextBox2 & " erstellt!"
Pfad = ActiveWorkbook.path & "\" & Dateiname & "\"
Else
Pfad = ActiveWorkbook.path & "\" & Dateiname & "\"
End If
With objWDDoc
If ListBox1.ListIndex > -1 Then
.FormFields("Text1").Result = TextBox1.Value
.SaveAs filename:=Pfad & Dateiname & "_PreAdd", FileFormat:= _
wdFormatXMLDocument
.Close True
End If
End With
End If
objWDApp.Visible = False
MsgBox "Das Dokument wurde im Ordner: " & ThisWorkbook.path & "\" & Dateiname & "  _
gespeichert!"
End Sub

Jetzt nur noch alle Fields einfügen dann sieht das gut aus.
Gruß
Marcel
Anzeige
AW: AW:ReadOnly
18.04.2019 09:30:10
Marcel
Jetzt passt das mit dem Schreibgeschützten Dokument ;-)
Wie speichere ich denn das jetzt offene Dokument(Word) in einem anderen Ordner ab, ohne die Grunddatei zu überschreiben?
Gruß
Marcel

99 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige