Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel Werte an Word übergeben

Excel Werte an Word übergeben
15.03.2018 23:07:43
Bianca85
Hallo,
ich komm leider nicht weiter. Ich hab schon viel recherchiert und ausprobiert, trotzdem macht mein Code nicht das, was er soll. Vielleicht habt ihr ja eine Idee?
Und zwar möchte ich, dass unsere Mitarbeiter eine Excel-Datei befüllen. Die eingetragenen Werte sollen dann durch Klick auf einen Button an eine Word-Vorlage übergeben werden.
Meine Excel enthält momentan nur in Zelle A1 einen Wert. Dieser soll an die Textmarke in Word mit Namen Text1 übergeben werden.
Zur Zeit erhalte ich die Fehlermeldung: Laufzeitfehler 5941 das angeforderte Element ist nicht in der Sammlung vorhanden.
Version: Word und Excel 2013.
Hier wäre der Code:
Sub datenausexcel()
Dim appword As Object
Dim wrddocument As Object
On Error Resume Next
Set appword = GetObject(, "word.application")
If Err = 429 Then
Err.Clear
Set appword = CreateObject("word.application")
If Err > 0 Then
MsgBox "Es ist ein Fehler aufgetreten"
Exit Sub
End If
End If
Err.Clear
Set wrddocument = appword.documents.Open("L:\Briefe\test.dotx") 'hier ist die Word-Vorlage
If Err = 1004 Then
MsgBox "Dokument ist nicht vorhanden"
appword.Quit
Set appword = Nothing
Exit Sub
End If
On Error GoTo 0
appword.Visible = True
'Dim name1 As String: name1 = Worksheets("Tabelle1").Range("A1").Value
wrddocument.FormFields("text1").Result = Cells(1, 1)
Application.Quit
Application.DisplayAlerts = False
ActiveWorkbook.Close savechanges:=False
Application.DisplayAlerts = True
End Sub
Falls ihr wisst, was ich falsche mache, würd ich mich sehr freuen. Übrigens bin ich Anfängerin :)
Liebe Grüße,
Bianca
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Werte an Word übergeben
16.03.2018 06:54:31
fcs
Hallo Bianca,
deine Lösung gilt, wenn du in Word Formularfelder ausfüllen willst.
Wenn du Text an Textmarken/Bookmarks einfügen willst, dann ist die VBA-Lösung geringfügig anders.
    wrdDocument.Bookmarks("text1").Range.Text = Cells(1, 1)
Allerdings solltest du nicht die Wordvoröage öffnen sondern ein neues Dokument auf Basis der Vorlage öffnen.
Auch beim Schliessen von Excel muss du vorsichtig sein. Der Nutzer des Makros hat evtl. noch andere Arbeitsmappen geöffnet - dann sollte nur die Active Mappe geschlossen werden.
Die Fehlerbehandlung hab ich auch etwas umgestrickt.
Gruß
Franz
Sub datenausexcel()
Dim appWord As Word.Application 'Object
Dim wrdDocument As Word.Document 'Object
Dim wks As Worksheet
Dim strVorlage As String
Dim strWKB_Name As String
On Error GoTo Fehler
strWKB_Name = ActiveWorkbook.Name
Set wks = ActiveWorkbook.Worksheets("Tabelle1") 'Tabellenblatt mit den zu übertragenden  _
Daten
strVorlage = "L:\Briefe\test.dotx"
If Dir(strVorlage, vbNormal) = "" Then
MsgBox "Vorlage-Dokument """ & strVorlage & """ ist nicht vorhanden"
Exit Sub
End If
Set appWord = GetObject(, "word.application")
appWord.Visible = True
'Word-Vorlage als neues Dokument öffnen
Set wrdDocument = appWord.Documents.Add(Template:=strVorlage)
'Dim name1 As String: name1 = Worksheets("Tabelle1").Range("A1").Value
'    wrddocument.FormFields("text1").Result = Cells(1, 1)
wrdDocument.Bookmarks("text1").Range.Text = wks.Cells(1, 1)
wrdDocument.Bookmarks("text2").Range.Text = wks.Cells(2, 1)
appWord.Activate
'Exit Sub               'während Testphase
'Excel ohne Speichern verlassen
Select Case Application.Workbooks.Count
Case 1 'es gibt keine persönliche Makro-Arbeitsmappe
Application.DisplayAlerts = False
Application.Quit
Case 2 'es gibt eine persönliche Makro-Arbeitsmappe oder andere Mappe
If Application.Windows("PERSONAL.XLSB").Visible = False Then
Application.DisplayAlerts = False
Application.Quit
Else
Application.Workbooks(strWKB_Name).Close savechanges:=False
End If
Case Is > 2 'es sind noch andere Arbeitsmappen geöffnet
Application.Workbooks(strWKB_Name).Close savechanges:=False
End Select
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case 429 'Word ist noch nicht geöffnet
Set appWord = CreateObject("word.application")
Resume Next
Case 91 'objekt-Fehler -  z.B. Textmarke in Word fehlt
Resume Next
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: Excel Werte an Word übergeben
16.03.2018 09:04:09
Bianca
Hallo Franz,
du bist ja schnell :) vielen Dank - danke auch, dass du dir so viel Mühe gegeben hast meinen stümperhaften Code durch einen durchdachten zu ersetzen.
Ich erhalte beim Start den Fehler: Fehler beim Kompilieren. Benutzerdefinierter Typ nicht definiert. Was könnte das sein?
Außerdem hab ich noch eine grundlegende Frage: was ist der Unterschied zwischen Textmarken und Textfeldern. Alle vba Varianten die ich gefunden habe, reden immer von Textmarken, daher dachte ich, das wäre das richtige.
Liebe Grüße und nochmal danke :)
Bianca
Anzeige
AW: Excel Werte an Word übergeben
16.03.2018 16:50:57
fcs
Hallo Bianca,
da hab ich dir versehentlich die Version gepostet. die ich beim Testen erstellen des Codes verwende. (im VBA-Editor ist unter Extras --&gt Verweise der Verweis auf die Microsoft Word y.x-Library ativiert.
    Dim appWord As Word.Application 'Object
Dim wrdDocument As Word.Document 'Object

ändern in
    Dim appWord As Object 'Word.Application
Dim wrdDocument As Object 'Word.Document
Gruß
Franz
Textmarke/Textbox
Eine Textmarke ist eine Position im Worddokument oder auch ein Textbereich dem man über Einfügen --&gt einen Namen zuweist.
Eine Textbox/Textfeld ist in Word ein "Rahmen, den man mit Text füllen kann und die man mehr oder weniger gut beliebig im Worddokument plazieren kann.
Zusätzlich gibt es dann noch die Formularfelder, die zum Teil wohl auch noch Textbox oder Textfield heißen..
Gruß
Franz
Anzeige
AW: Excel Werte an Word übergeben
17.03.2018 11:33:29
Bianca85
Vielen Dank - auch fürs Erklären. Ich teste das gleich mal und berichte dann :)
Alles Liebe
Bianca
AW: Excel Werte an Word übergeben
17.03.2018 11:51:39
Bianca85
Lieber Franz,
es funktioniert - du bist spitze :)
Damit hast du mir sehr viel Arbeit erspart :)
WÜnsch dir ein schönes Wochenende,
Bianca
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel Werte an Word übergeben


Schritt-für-Schritt-Anleitung

Um Excel-Daten in eine Word-Vorlage zu übergeben, kannst du den folgenden VBA-Code verwenden. Dieser Code ermöglicht es dir, Werte aus Excel an Textmarken in Word zu füllen. Stelle sicher, dass du Word und Excel 2013 oder höher verwendest.

  1. Öffne die Excel-Datei, die die Daten enthält.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  4. Füge den folgenden Code ein:
Sub datenausexcel()
    Dim appWord As Object
    Dim wrdDocument As Object
    Dim wks As Worksheet
    Set wks = ActiveWorkbook.Worksheets("Tabelle1")
    On Error GoTo Fehler

    Set appWord = CreateObject("word.application")
    appWord.Visible = True

    Set wrdDocument = appWord.Documents.Add("L:\Briefe\test.dotx") ' Word-Vorlage

    ' Werte an Textmarken übergeben
    wrdDocument.Bookmarks("text1").Range.Text = wks.Cells(1, 1)

    ' Excel schließen
    Application.DisplayAlerts = False
    ActiveWorkbook.Close savechanges:=False
    Application.DisplayAlerts = True

    Exit Sub
Fehler:
    MsgBox "Fehler: " & Err.Description
End Sub
  1. Ändere den Pfad zur Word-Vorlage in der Zeile Set wrdDocument = ... entsprechend deinem Bedarf.
  2. Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  • Laufzeitfehler 5941: Dieser Fehler tritt auf, wenn die angegebene Textmarke nicht existiert. Stelle sicher, dass die Textmarke in der Word-Vorlage korrekt benannt ist.
  • Das angeforderte Element ist nicht in der Sammlung vorhanden: Dies deutet ebenfalls auf ein Problem mit der Textmarke hin. Überprüfe die Schreibweise und existiert die Textmarke wirklich in deinem Dokument?
  • Fehler beim Kompilieren, Benutzerdefinierter Typ nicht definiert: Dies kann passieren, wenn der Verweis auf die Microsoft Word Bibliothek nicht gesetzt ist. Du kannst den Typ in Dim appWord As Object ändern, um diesen Fehler zu vermeiden.

Alternative Methoden

Eine alternative Methode, Excel-Daten in Word einzufügen, besteht darin, die Daten einfach zu kopieren und in das Word-Dokument einzufügen. Diese Methode erfordert keine Programmierung, könnte jedoch weniger flexibel sein, wenn es darum geht, spezifische Textmarken zu verwenden.


Praktische Beispiele

Angenommen, du hast in deiner Excel-Tabelle in Zelle A1 den Namen "Max Mustermann". Du möchtest diesen Namen in die Textmarke "text1" deiner Word-Vorlage einfügen. Der oben angegebene VBA-Code führt dies automatisch aus, wenn du das Makro startest.


Tipps für Profis

  • Verwende mehrere Textmarken: Du kannst zusätzliche Textmarken in deinem Word-Dokument verwenden, um mehrere Werte aus Excel zu übergeben. Erweitere den Code entsprechend:
wrdDocument.Bookmarks("text2").Range.Text = wks.Cells(2, 1) ' Beispiel für eine zweite Textmarke
  • Debugging: Wenn du Fehler bekommst, kannst du den Code Schritt für Schritt ausführen, um zu sehen, wo der Fehler auftritt. Das ist besonders hilfreich bei der Fehlersuche mit Laufzeitfehlern in VBA.

FAQ: Häufige Fragen

1. Was ist eine Textmarke in Word?
Eine Textmarke ist eine definierte Stelle in einem Word-Dokument, die du mit einem Namen versehen kannst. Dies ermöglicht es, bestimmte Bereiche des Dokuments einfach anzusprechen und zu ändern.

2. Wie kann ich Textmarken in Word erstellen?
Um eine Textmarke zu erstellen, markiere den gewünschten Text, gehe zu Einfügen > Textmarke und gib einen Namen für die Textmarke ein.

3. Kann ich Excel-Daten in Word-Vorlagen ohne VBA übergeben?
Ja, du kannst die Daten manuell kopieren und in Word einfügen, aber das ist weniger automatisiert als mit VBA.

4. Was ist der Unterschied zwischen Textmarken und Textfeldern?
Eine Textmarke ist eine Position im Dokument, während ein Textfeld ein grafisches Element ist, in das du Text einfügen kannst, das jedoch unabhängig vom normalen Fluss des Textes ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige