Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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.
Anzeige

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
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Werte aus Excel in Word einfügen mit VBA


Schritt-für-Schritt-Anleitung

Um Excel-Daten in Word einzufügen und das Ganze mit VBA zu automatisieren, folge diesen Schritten:

  1. Öffne Excel und erstelle oder öffne die Tabelle, aus der Du die Daten exportieren möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul ein: Klicke mit der rechten Maustaste auf „VBAProject (DeinWorkbookName)“ > Einfügen > Modul.

  4. Kopiere den folgenden Code in das Modul:

    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).Text
       docTest.Bookmarks("Straße").Range.Text = Range("C" & letztezeile).Text
       docTest.Bookmarks("Nummer").Range.Text = Range("D" & letztezeile).Text
       docTest.Bookmarks("PLZ").Range.Text = Range("E" & letztezeile).Text
       docTest.Bookmarks("Ort").Range.Text = Range("F" & letztezeile).Text
    
       ' Weitere Bookmarks hier hinzufügen...
    
       Set docTest = Nothing
       Set appWord = Nothing
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus: Drücke ALT + F8, wähle Makro1 und klicke auf „Ausführen“.


Häufige Fehler und Lösungen

Problem: Die Werte werden ohne Formatierung in Word eingefügt.
Lösung: Verwende .Text anstelle von .Value in den Range-Anweisungen, um sicherzustellen, dass die formatierte Darstellung übernommen wird.

Problem: Die Word-Datei wird nicht gefunden.
Lösung: Überprüfe den Pfad in der Documents.Add-Anweisung und stelle sicher, dass die Datei an diesem Ort existiert.


Alternative Methoden

  • Excel mit Word verknüpfen: Statt die Daten direkt in Word einzufügen, kannst Du auch eine Verknüpfung erstellen. Dies kann über die Funktion „Einfügen“ > „Objekt“ > „Verknüpfung“ in Word erfolgen.
  • Daten aus Excel automatisch in Word einfügen: Du kannst auch ein Makro erstellen, das bei bestimmten Ereignissen (z.B. beim Öffnen von Word) ausgeführt wird.

Praktische Beispiele

Um zu veranschaulichen, wie Du Daten aus Excel in Word einfügen kannst, hier ein einfaches Beispiel:

Sub RechnungErstellen()
    ' Hier wird eine Rechnung aus Excel erstellt
    ' Beispiel für das Einfügen von Rechnungsdaten
End Sub

Dieses Makro könnte erweitert werden, um alle relevanten Daten aus der Excel-Tabelle in die Word-Rechnung einzufügen.


Tipps für Profis

  • Nutze Fehlerbehandlung: Füge Fehlerbehandlungsroutinen in Dein VBA-Skript ein, um Probleme beim Ausführen zu vermeiden.
  • Schaffe eine Benutzeroberfläche: Erstelle ein Formular, das es Benutzern ermöglicht, direkt aus Excel zu wählen, welche Daten sie in Word einfügen möchten.
  • Optimiere die Performance: Schließe Word, wenn Du mit dem Einfügen der Daten fertig bist, um Ressourcen zu sparen.

FAQ: Häufige Fragen

1. Wie kann ich Excel-Daten in ein Word-Formular einfügen?
Du kannst die gleichen Techniken verwenden, um die Daten in die Platzhalter deines Word-Formulars einzufügen. Stelle sicher, dass die Bookmarks korrekt gesetzt sind.

2. Ist es möglich, Daten aus Word in Excel zu importieren?
Ja, Du kannst VBA verwenden, um Daten aus Word zurück in Excel zu importieren. Dies erfordert jedoch einen anderen Ansatz und spezifische Anpassungen im Code.

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