Temponäre Datei
#11
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
Antworten Top
#12
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)
Antworten Top
#13
Genau das erreichst du mit SaveAs.
Antworten Top
#14
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
Antworten Top
#15
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.
Antworten Top
#16
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:
  • shift-del
Antworten Top
#17
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
Antworten Top
#18
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
Antworten Top
#19
Ich stehe völlig auf dem Schlauch: temorär, temponär, tempotär. wie bitte ? Huh
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#20
@ derHoepp 

genau dass meine ich! Dokument1 soll den Wert von

lngZeile = ActiveCell.Row

strAdresse = Cells(lngZeile, 4)

annehmen.

Nur wie?
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste