Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1836to1840
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
Inhaltsverzeichnis

Excel Daten nach Word kopieren

Excel Daten nach Word kopieren
06.07.2021 20:45:51
Klaus
Hallo Forum,
Durch ein Makro fülle ich über eine Excel Tabelle Daten in eine Word Dokumenten Vorlage die die erzeugten Dokumente dann auch
ausdruckt. Das funktioniert auch alles nur hänge ich jetzt an einem Punkt bei dem ich nicht weiterkomme und hoffe, dass mir
jemand dabei helfen kann.
Die Dokumentenvorlage hat in der Kopfzeile den Dateinamen "Fragebogen" der wenn man die Kopfzeile bearbeitet als
Feldnamen "FileName" zu sehen ist. Durch Ausführen des Makros wird aus der Dokumentenvorlage ein Dokument erzeugt
und erhält dann den Namen "Dokument1.docx". Das Dokument, welches ausgedruckt wird sollte aber seinen ursprünglichen
Namen beibehalten.
Vielen Dank für Eure Unterstützung
Klaus
hier nochmal das Skript

Sub DatennachWord()
'Dimmensionieren
Dim AppWord As Object
Dim strDoc As String
Dim objDialog As Object
Dim Test As Object
'Umgebung allgemein
Set AppWord = CreateObject("Word.Application")
'Umgebung der Dokumentenvorlagen
Set Test = AppWord.Documents.Add("C:\Test\Fragebogen.dotx")
'Setzen ob Dokument sichbar "True" oder nicht sichbar "False"
AppWord.Visible = True
'Dokumente aktivieren
Test.Activate
'Bookmarks (Textmarken für Dokument Fragebogen)
Test.Bookmarks("Name").Range.Text = Range("Name")
Test.Bookmarks("PLZ").Range.Text = Range("PLZ")
Test.Bookmarks("Ort").Range.Text = Range("Ort")
Test.Bookmarks("Strasse").Range.Text = Range("Strasse")
'Ausdrucken der Dokumente
Test.PrintOut
Test.Close savechanges:=False
'AppWord.Quit
Set Test = Nothing
Set AppWord = Nothing
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Daten nach Word kopieren
06.07.2021 20:58:35
Oberschlumpf
Hi Klaus,
ich finde, einfacher ist es, wenn du Word "vergisst" und in Excel selbst eine Briefvorlage erstellst, die du dann eben auch mit Excel verwaltest.
(glaub mir, auch eine Exceltabelle kann man so gestalten, dass es wie ein Brief aussieht ;-) )
So ist das Fernsteuern anderer Programme, hier Word, nicht mehr erforderlich - und alles! wird einfacher für dich.
Wenn diese Datei(en) auch Andere nutzen sollen, dann erzähl denen eben von deinem "Upgrade" und informiere darüber, dass eben nur noch die Excel-Vorlage genutzt wird.
Was hältst du von dieser Idee?
Ich lass den Beitrag offen, weil meine Antwort nicht so wirklich deine Frage beantwortet.
Ciao
Thorsten
Anzeige
?
07.07.2021 00:54:13
Oberschlumpf
AW: Excel Daten nach Word kopieren
07.07.2021 08:31:10
EtoPHG
Hallo Klaus,
Das ist doch Standardverhalten von Word. Solange Du (oder Dein Makro) nur die Vorlage öffnet, wird der Standardname beim Öffnen eine neuen Dokuments verwendet, egal auf was für einer Vorlage es beruht. Du musst es vor dem Drucken unter einem gültigen Namen als .docx speichern und erst dann ausdrucken.
Gruess Hansueli
AW: Excel Daten nach Word kopieren
07.07.2021 15:45:02
Klaus
Hallo Hansueli,
OK vielen Dank für Deine Antwort.
Wie würde da der Code aussehen wenn ich den Dateinamen der Word Vorlage
als Dateiname des Word Dokumentes haben möchte.
Ich habe schon ein paar Speichern Varianten aus den Foren versucht.
Ich bekomme aber immer nur meine Excel gespeichert und
nie die erzeugten Word Dokumente. Vielleicht kann mir ja jemand weiterhelfen..
Anzeige
AW: Excel Daten nach Word kopieren
07.07.2021 15:59:34
JoWE
Hallo Klaus,
lass doch in der Wordvorlage die Kopfzeile leer,
Dann kann das Excel-Makro das Wort "Fragebogen" dort hin schreiben:

'Setzen ob Dokument sichbar "True" oder nicht sichbar "False"
AppWord.Visible = True
 'hier startet der einzufügende Codeschnipsel 
'Kopfzeile füllen
Dim objRange As Object 'das gehört nach oben!!
Set objRange = Test.Sections(1).Headers(wdHeaderFooterPrimary).Range
With objRange
.Text = "Fragebogen"
.ParagraphFormat.Alignment = 2 'also rechtsbündig
'0 = wdAlignParagraphLeft 1 = wdAlignParagraphCenter, 2 = wdAlignParagraphRight
.Font.Bold = True 'also fett
.Font.Color = 16711680 ' also blau
'16711680 = wdColorBlue
.Font.Size = 14 'also Schriftgröße 14
End With
'hier endet der einzufügende Codeschnipsel
'Dokumente aktivieren
Test.Activate
Gruß
Jochen
Anzeige
AW: Excel Daten nach Word kopieren
07.07.2021 19:18:09
Klaus
Hallo Jochen,
Danke für den Codeschnipsel
Bei dieser Zeile schreibt der Debuger "5941 Angefordertes Element in Sammlung nicht vorhanden"
Die Kopfzeile in dem Dokument habe ich entfernt
Set objRange = Test.Sections(1).Headers(wdHeaderFooterPrimary).Range
Habe ich was falsch verstanden?
Gruß Klaus

Sub DatennachWord()
'Dimmensionieren
Dim objRange As Object
Dim AppWord As Object
Dim strDoc As String
Dim objDialog As Object
Dim Test As Object
'Umgebung allgemein
Set AppWord = CreateObject("Word.Application")
'Umgebung der Dokumentenvorlagen
Set Test = AppWord.Documents.Add("C:\Test\Fragebogen.dotx")
'Setzen ob Dokument sichbar "True" oder nicht sichbar "False"
AppWord.Visible = True
Set objRange = Test.Sections(1).Headers(wdHeaderFooterPrimary).Range
With objRange
.Text = "Fragebogen"
.ParagraphFormat.Alignment = 2 'also rechtsbündig
'0 = wdAlignParagraphLeft 1 = wdAlignParagraphCenter, 2 = wdAlignParagraphRight
.Font.Bold = True 'also fett
.Font.Color = 16711680 ' also blau
'16711680 = wdColorBlue
.Font.Size = 14 'also Schriftgröße 14
End With
'Dokumente aktivieren
Test.Activate
'Bookmarks (Textmarken für Dokument Fragebogen)
Test.Bookmarks("Name").Range.Text = Range("Name")
Test.Bookmarks("Ort").Range.Text = Range("Ort")
Test.Bookmarks("Strasse").Range.Text = Range("Strasse")
'Ausdrucken der Dokumente
'Test.PrintOut
'Test.Close savechanges:=False
'AppWord.Quit
Set Test = Nothing
Set AppWord = Nothing
End Sub

Anzeige
AW: Excel Daten nach Word kopieren
07.07.2021 19:59:39
JoWE
Hallo Klaus,
bei mir kommt der Fehler nicht. Hier lade ich Dirmal meine Arbeitsmappe und die passende Word-Vorlage hoch:
https://www.herber.de/bbs/user/147006.zip
Du musst natürlich noch die Pfadangaben im Code der Arbeitsmappe anpassen :-))
Gruß
Jochen
AW: Excel Daten nach Word kopieren
07.07.2021 21:23:27
Klaus
Hallo Jochen,
Ja Dein Skript funktioniert. Danke für die Hilfe. Ich hatte den "Codeschnipsel" von Dir völlig falsch eingebaut. Wenn es nicht zu viel wird noch eine Frage.
Würde das auch funktionieren wenn ich 2 oder mehr Dokumente füllen möchte
und jedes Dokument hätte eine eigene Kopfzeile mit seinem Dateinamen?
Ich habe das als Test1 in das Skript mit aufgenommen
Option Explicit
Const wdHeaderFooterPrimary = 1
Const wdAlignParagraphRight = 2

Public Sub Main()
Dim objRange As Object
Dim objWord As Object
Dim objDoc As Object
On Error GoTo Fin
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add
Set objRange = objDoc.Sections(1).Headers(wdHeaderFooterPrimary).Range
With objRange
.Text = "FrageTest!"
.ParagraphFormat.Alignment = wdAlignParagraphRight
.Font.Bold = True
.Font.Color = 16711680 'wdColorBlue
.Font.Size = 14
End With
Fin:
Set objRange = Nothing
Set objDoc = Nothing
Set objWord = Nothing
If Err.Number  0 Then MsgBox "Error: " & _
Err.Number & " " & Err.Description
End Sub
Sub DatennachWord()
'Dimmensionieren
Dim AppWord As Object
Dim strDoc As String
Dim objDialog As Object
Dim objDoc As Object
Dim Test As Object
'Umgebung allgemein
Set AppWord = CreateObject("Word.Application")
'Umgebung der Dokumentenvorlagen
Set Test = AppWord.Documents.Add("C:\Users\joche\Desktop\VBA Übungen\Klaus 07072021\WDTest.dotx")
Set Test1 = AppWord.Documents.Add("C:\Users\joche\Desktop\VBA Übungen\Klaus 07072021\WDTest1.dotx")
'Setzen ob Dokument sichbar "True" oder nicht sichbar "False"
AppWord.Visible = True
'Dokumente aktivieren
Test.Activate
Test1.Activate
'Bookmarks (Textmarken für Dokument Fragebogen)
Test.Bookmarks("Name").Range.Text = Range("Name")
Test.Bookmarks("PLZ").Range.Text = Range("PLZ")
Test.Bookmarks("Ort").Range.Text = Range("Ort")
Test.Bookmarks("Strasse").Range.Text = Range("Strasse")
'Bookmarks (Textmarken für Dokument Fragebogen11)
Test.Bookmarks("Name").Range.Text = Range("Name")
Test.Bookmarks("PLZ").Range.Text = Range("PLZ")
Test.Bookmarks("Ort").Range.Text = Range("Ort")
Test.Bookmarks("Strasse").Range.Text = Range("Strasse")
'Ausdrucken der Dokumente
'Test.PrintOut
'Test.Close savechanges:=False
'Test1.PrintOut
'Test1.Close savechanges:=False
'AppWord.Quit
Set Test = Nothing
Set Test1 = Nothing
Set AppWord = Nothing
End Sub
Anzeige
AW: Excel Daten nach Word kopieren
08.07.2021 11:37:10
JoWE
Klaus,
inzw. glaube ich zwar, Du könntest evtl. besser mit der Serienbrieffunktion von Word arbeiten.
Trotzdem habe ich doch mal ein wenig gebastelt. Hänge ich Dir nochmal die Dateien an, in der Excel-Tabelle findest Du eine kurze Erläuterung:
https://www.herber.de/bbs/user/147010.zip
Gruß
Jochen
AW: Excel Daten nach Word kopieren
08.07.2021 18:10:39
Klaus
Danke Jochen
Dein Skript funktioniert. Ist aber ganz schön viel Aufwand für den Dateinamen in die Kopfzeile zu bringen
Mit Schleifen usw. kenne ich mich leider zu wenig aus. Ich bin in meinem jugendlichen Leichtsinn davon ausgegangen
ist bestimmt bloß ein sog. "Dreizeiler" für einen Programmierer.
Vielleicht ist es dann doch einfacher das aus der Vorlage erzeugte Dokument
in einem bestimmten Ordner als Docx zu speichern, auszudrucken und wieder zu löschen.
Hierzu werde ich sicher was im Forum finden.
Nochmal Danke für Deine Hilfe
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige