Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1612to1616
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
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

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
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

21 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige