Daten aus Excel-Datei in Word-Texte einfügen

3 Antworten

Ich würde es ein wenig anders machen und die Seriendruckfunktion nutzen.

Dafür trägst du die Daten aller Rechnungsempfänger in eine Exceltabelle und erstellst dir in Word ein Dokument mit den entsprechenden Feldern. Dann kannst du alle Rechnungen in einem Rutsch drucken.

Wenn du nach "Word Excel Seriendruck" googlest, findest du detaillierte Anleitungen, z.B. diese hier http://www.online-excel.de/excel/singsel.php?f=164


Tuesday123 
Fragesteller
 04.02.2014, 14:32

Hallo DeeDee07,

danke für deine Antwort. Diese Möglichkeit habe ich noch garnicht in Betracht gezogen, werde aber gerne mal testen wie es funktioniert.

Grundsätzlich bin ich aber trotzdem daran interessiert, wie das oben beschriebene sonst noch gehen könnte. Bin also noch für alles offen.

Grüße, Peter

0

Toll erklärt, kannst Du das zufällig auch anders herum? Ich habe eine Worddatei in der ich schon alle möglichen funktionierenden Makros habe und möchte dort gerne eine Exceltabelle öffnen (den Teil bekomme ich ohne Eleganz hin), dann aus einer Spalte die ein Länderkürzel beinhaltet und einer Zeile mit einem Zeilen Kopf den kreuzenden Text auslesen.

z.B. Excel C:\Exceltabelle.xlsx öffnen

Dort gibt es Spalten (A1=nichts, B1=Deutsch, C1=Englisch, etc.)

In A2, A3, A4, etc stehen als Zeilenüberschrift Produktcodes, sagen wir in A4 steht das Produkt "ABC".

Dafür möchte ich an einer definierten Textmarke in Word springen (kann ich schon) und den passenden Text einfügen.

Wie bekomme ich den passenden Text aus Excel? Ich dachte irgendwie so:

Dim objWorkbook as object (mit Exceldatei, die ich bereits von Word aus geöffnet habe)

Dim sText as String (für das Produkt)

Dim icol as Range (für die richtige Spalte)

'  iCol = objWorkbook.WorksheetFunction.Match(sText, lRow, False)

  iCol = objWorkbook.sheets(1).Find(What:="DE").Column

'  iCol = objWorkbook.sheets(1).Range("A1:E1").Find(What:=sText, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext).Column

'  iCol = Range("1:1").Find(lRow, sText, xlValues)

Das funktioniert alles nicht, hast jemand bessere Ideen???

Es ist bestimmt einfach...

Moin Peter,

für den Fall, dass Deine Frage noch aktuell ist und Du Deine Herausforderung nicht mit der von DeeDee07 vorgeschlagenen Seriendruckfunktion meistern möchtest, hier eine Möglichkeit per VBA: Das Zauberwort lautet hier "Textmarken". Bereite dafür Deine Word-Vorlage vor, indem Du dort, wo Excel-Daten eingefügt werden sollen, Textmarken platzierst. Abhängig davon, welche Version Du hast, befindet sich der Unterpunkt entweder auf dem Ribbon Einfügen (ab Office 2007) oder im Menü Einfügen (< Office 2007). Vergib im Dialog eindeutige Namen und notiere sie Dir am besten separat, Du wirst sie im VBA-Code in Excel brauchen.

Hier ein Beispiel, wie Dein Code aussehen könnte:

Dim appWord     As Object
Dim docWord     As Object
Dim wks         as Worksheet

Set wks = ThisWorkbook.Worksheets("NameDesTabellenblatts")              'anpassen
Set appWord = CreateObject("Word.Application")
Set docWord = appWord.Documents.Add("C:\Ordner\DeineVorlage.dotx")      'anpassen
With docWord
  .Bookmarks("NameTextmarke1").Range.Text = wks.Range("A1").Value       'anpassen
  .Bookmarks("NameTextmarke2").Range.Text = wks.Range("A2").Value       'anpassen
  .Bookmarks("NameTextmarke3").Range.Text = wks.Range("A3").Value       'anpassen
End With

Noch Fragen? :-)


Tuesday123 
Fragesteller
 07.02.2014, 13:53

Hey, danke für deine Antwort. Ich war die letzten Tage nicht daheim, kann es erst heute Abend testen. Ich melde mich wieder!

Grüße Peter

0