Registriert seit: 05.07.2024
Version(en): Office 365
Der temporäre Name ist doch erst einmal vollkommen irrelevant. Du willst es doch speichern mit deinem vorgegebenen Namen.
Also Documentvorlage öffnen
Daten eintragen
Abspeichern
---------------------------------------------------------------------
Ein Worddokument mit dem Namen "Serienbriefvorlage.docx" heist nach dem Öffnen immer noch "Serienbriefvorlage.docx"
Aus einer Worddokumentenvorlage mit dem Namen " Serienbriefvorlage.dotx" wird nach dem Öffnen "Dokument1.docx" oder auch "...2.docx", je nachdem wie oft du die Vorlage schon geöffnet hast und dann speichert du es als Dokument ab.
VG
Registriert seit: 01.07.2023
Version(en): Pro Plus 2019
Der Sinn darin ist, das in der aktiven Zelle Namen drin stehen.
Dieser Name sowie alle zugehörigen Adressdaten werden in Word eingesetzt (Textmarken).
Der Name soll für das Dateispeichern schon vordefiniert sein (2024_12_02_Name aus Namenszelle.docx)
Registriert seit: 22.09.2024
Version(en): 2010
Genau das erreichst du mit SaveAs.
Registriert seit: 05.07.2024
Version(en): Office 365
Guten Morgen,
hier ein kleines Beispiel.
Function daten_nach_word()
Dim appWord As Object
Dim doc As Object
Dim wks As Worksheet
Dim WordObj As Object
'
'*** Word starten ***
Set appWord = CreateObject("Word.Application")
'*** verwendet Datei nur als Vorlage ***
Pfad = "D:\\Office_Forum\\Excel\\Textmarke_fuellen\\" ' anpassen
dateifile = "Dokumentenvorlage.dotx" ' anpassen
Set doc = appWord.Documents.Add(Pfad & dateifile)
'***
Set WordObj = GetObject(, "Word.Application")
If WordObj Is Nothing Then
Set WordObj = CreateObject("Word.Application")
Else
End If
'*** Word sichtbar machen ***
appWord.Visible = True
'*** Anspringen einer Textstelle in Word mittels Textmarke ***
'*** Prüfen ob diese existiert und ggf füllen***
If appWord.ActiveDocument.Bookmarks.Exists("Name") Then
appWord.ActiveDocument.Bookmarks("Name").Range.Text = Worksheets("Tabelle1").Range("B2")
'appWord.ActiveDocument.Bookmarks("Vorname").Range.Text = Worksheets("Tabelle1").Range("B3")
Else
MsgBox "Die Textmarke/n sind nicht vorhanden"
End If
' Datei speichern
appWord.ActiveDocument.SaveAs2 Filename:=Pfad & Worksheets("Tabelle1").Range("B2") & ".docx", FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=15
'*** Aufräumen ***
Set WordObj = Nothing
End Function
Registriert seit: 01.07.2023
Version(en): Pro Plus 2019
Erstmal vielen Dank an alle für Ihre Mithilfe.
Mitlerweile glaub ich, dass wenn ein neues Worddokument geöffnet wird keine Möglichkeit besteht den Dokumentenname (Dokument1) zu ändern.
Registriert seit: 22.09.2024
Version(en): 2010
02.12.2024, 12:54
(Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2024, 12:55 von knobbi38.)
Der Dokumentename, so wie du ihn bezeichnest, wird erst beim Speichern vergeben, ob du es glaubst oder nicht.
Folgende(r) 1 Nutzer sagt Danke an knobbi38 für diesen Beitrag:1 Nutzer sagt Danke an knobbi38 für diesen Beitrag 28
• shift-del
Registriert seit: 05.07.2024
Version(en): Office 365
02.12.2024, 13:24
(Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2024, 13:24 von Dragons.
Bearbeitungsgrund: Fehlerchen
)
Hallo,
du hast jetzt von mehreren Seiten immer die gleichen Informatiionen bekommen. Word erzeugt grundsätzlich beim Öffnen eines leeren Dokumentes den Namen Dokument 1. Das sieht du doch selber, wenn du dir den Namen anschaust den Word für dein neues leeres Dokument in der Titelleiste anzeigt.
Wie von Knobbi38 und von mir auch schon geschrieben. Erst mit dem Speichern bzw. Speichern unter erfolgt die Vergabe eines Namens für das Dokument.
Von meiner Seite hast du sogar einen funktionierenden Code erhalten, der ein neues Dokument aus einer Vorlage erzeugt, deine Daten einträgt und dann abspeichert.
Sofern du deine Exceltabelle als Vorlage für Serienbriefe verwendest und aus Excel heraus jeweils ein Dokument mit Inhalten füllst (hast du einfach zu viel Zeit) und dann speicherst, schaue dir mal die Funktion Serienbrief(Word) an.
In Word kannst du das ganze auch, viel komfortabler und deutlich schneller erledigen und zwar aus dem einfachen Grund: Du musst nicht jede Textmarke prüfen ob Sie zum Befüllen vorhanden ist.
VG
Uwe
Registriert seit: 26.09.2022
Version(en): 2019
Moin,
ich vermute mal, dass das Thema nix mit Excel zu tun hat, sondern es um das Word-Objektmodell geht. Mittlerweile glaube ich, dass soetwas gemeint ist:
Code:
Option Explicit
Sub renameWordWindow(doc As Document, newName As String)
With doc.Windows(1)
.Caption = Replace(.Caption, "Dokument", new_name)
End With
End Sub
Ich rate, dass der TE den Fenstertitel umbenennen möchte, damit der jeweilige Nutzer das erzeugte Word-Fenster sehen kann um dort im Fenstertitel zu sehen, worum es bei dem "Serienbrief" geht.
Insgesamt sei dem TE noch empfohlen, sich beim übergreifenden Arbeiten mit Word und Excel nie auf die Active*-Hilfsobjekte zu verlassen, sondern die Rückgabewerte in Variablen zu speichern.
Statt
Word.Documents.Open "Dateiname"
also
Set doc = Word.Documents.Open("Dateiname")
Viele Grüße
derHöpp
Registriert seit: 29.09.2015
Version(en): 2030,5
Ich stehe völlig auf dem Schlauch: temorär, temponär, tempotär. wie bitte ?
Registriert seit: 01.07.2023
Version(en): Pro Plus 2019
@
derHoepp genau dass meine ich! Dokument1 soll den Wert von
lngZeile = ActiveCell.Row
strAdresse = Cells(lngZeile, 4)
annehmen.
Nur wie?