Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1580to1584
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

VBA: Excel Werte in Word einfügen

VBA: Excel Werte in Word einfügen
19.09.2017 12:30:56
Sven
Hallo zusammen,
der Betreff ist etwas kurz, daher folgend eine umfassendere Beschreibung meines kleinen Problems:
Ich habe eine Excel-Tabelle (A-X). Jede Zeile beinhaltet ein Datenpaket für eine Rechnung mit verschiedensten Daten. Es können beliebig viele neue Datensätze (neue Zeilen) für neue Rechnungen in der Tabelle ergänzt werden.
Ich habe es mit VBA nun bereits geschafft, dass ich bestimmte Zellenwerte (z.B. den Wert aus "B5") per Textmarken an die richtige Stelle meiner Word-Datei (Die Rechnung) einfüge. Das klappt wunderbar.
Der Quellcode dazu sieht momentan so aus:
Sub Makro1()
Dim appWord     As Object
Dim docTest     As Object
Set appWord = CreateObject("Word.Application")
Set docTest = appWord.Documents.Add("file:///C:\Users\nic\Desktop\Rechnung.docx")
appWord.Visible = True
docTest.Activate
docTest.Bookmarks("Firmenname").Range.Text = Range("B5")
docTest.Bookmarks("Straße").Range.Text = Range("C5")
docTest.Bookmarks("Nummer").Range.Text = Range("D5")
docTest.Bookmarks("PLZ").Range.Text = Range("E5")
docTest.Bookmarks("Ort").Range.Text = Range("F5")
Set docTest = Nothing
Set appWord = Nothing
End Sub

Nun mein Problem:
Wenn ich einen neuen Datensatz (neue Zeile) für eine neue Rechnung ausfülle, möchte ich per "Knopfdruck" die Werte aus dieser letzten Zeile, und nicht den Wert aus Zeile "5" in meine Word-Datei einfügen, um zu diesem neuen Datensatz eine neue Rechnung zu erstellen.
Hier bräuchte ich Hilfe.
Vielen Dank!
LG Sven
PS: Ich arbeite mit Excel 2016, falls dies relevant ist.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Excel Werte in Word einfügen
19.09.2017 12:35:14
yummi
Hallo Sven,
kannst Du so machen:

Sub Makro1()
Dim appWord     As Object
Dim docTest     As Object
dim letztezeile as long
Set appWord = CreateObject("Word.Application")
Set docTest = appWord.Documents.Add("file:///C:\Users\nic\Desktop\Rechnung.docx")
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row ' hier anpassen für deine Spalte 1  _
= A
appWord.Visible = True
docTest.Activate
docTest.Bookmarks("Firmenname").Range.Text = Range("B" & letztezeile )
docTest.Bookmarks("Straße").Range.Text = Range("C" & letztezeile )
docTest.Bookmarks("Nummer").Range.Text = Range("D" & letztezeile )
docTest.Bookmarks("PLZ").Range.Text = Range("E" & letztezeile )
docTest.Bookmarks("Ort").Range.Text = Range("F" & letztezeile )
Set docTest = Nothing
Set appWord = Nothing
End Sub
Gruß
yummi
Anzeige
AW: VBA: Excel Werte in Word einfügen
19.09.2017 16:32:59
Sven
Vielen Dank yummi!
Das hat es ziemlich genau getroffen.
Allerdings habe ich jetzt noch das Problem, das Zahlenwerte (z.B. 200.000) scheinbar ohne Formatierung eingefügt werden (in Word also 200000), bzw. Eurobeträge (z.B. 1500,50) nur als 1500,5 angezeigt werden.
Gibt es eine Möglichkeit, die Formatierung aus Excel in Word zu übernehmen?
Das ist mein Quellcode nun:
Sub Makro1()
Dim appWord     As Object
Dim docTest     As Object
Dim letztezeile As Long
Set appWord = CreateObject("Word.Application")
Set docTest = appWord.Documents.Add("file:///C:\Users\nic\Desktop\Rechnung.docx")
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
appWord.Visible = True
docTest.Activate
docTest.Bookmarks("Firmenname").Range.Text = Range("B" & letztezeile)
docTest.Bookmarks("Straße").Range.Text = Range("C" & letztezeile)
docTest.Bookmarks("Nummer").Range.Text = Range("D" & letztezeile)
docTest.Bookmarks("PLZ").Range.Text = Range("E" & letztezeile)
docTest.Bookmarks("Ort").Range.Text = Range("F" & letztezeile)
docTest.Bookmarks("Rechnungsnummer").Range.Text = Range("A" & letztezeile)
docTest.Bookmarks("Startdatum").Range.Text = Range("H" & letztezeile)
docTest.Bookmarks("Enddatum").Range.Text = Range("I" & letztezeile)
docTest.Bookmarks("InTagen").Range.Text = Range("J" & letztezeile)
docTest.Bookmarks("Zählerstandvorher").Range.Text = Range("M" & letztezeile)
docTest.Bookmarks("Zählerstandnachher").Range.Text = Range("O" & letztezeile)
docTest.Bookmarks("VerbrauchteMenge").Range.Text = Range("Q" & letztezeile)
docTest.Bookmarks("Arbeitspreis").Range.Text = Range("W" & letztezeile)
docTest.Bookmarks("Rechnungsbetrag").Range.Text = Range("Y" & letztezeile)
docTest.Bookmarks("MwSt").Range.Text = Range("Z" & letztezeile)
docTest.Bookmarks("Bruttobetrag").Range.Text = Range("AA" & letztezeile)
docTest.Bookmarks("Bruttobetrag2").Range.Text = Range("AA" & letztezeile)
Set docTest = Nothing
Set appWord = Nothing
End Sub
Dankeschön!
LG
Sven
Anzeige
Nimm den Zell-Text statt des Zell-Werts...
19.09.2017 17:18:29
Michael
Sven,
...in yummis Code überall wo bisher
Range("B" & letztezeile)
steht
Range("B" & letztezeile).Text
LG
Michael

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige