iceage

Excel VBA - Werte in Word-Dokument übertragen

Hallo und Guten Tag,

ich nutze eine Excel-Datei (Excel 2019, Win11), welche jetzt um ein Makro erweitert werden soll. Ich möchte per Button im Excel-Formular Daten aus bestimmten Zellen in ein Word-Dokument übertragen.

Leider komme ich nicht weiter, hier das aktuelle Stand des Makros:

Sub Word_erstellen()
' Variablen defenieren  
    Dim strTyp As String
    Dim strBetrag As String
    Dim strLaufzeit As String
    Dim strFreiSW As String
    Dim objWord As Object
    Set objWord = CreateObject("Word.Application")  

' Ein neues Word-Dokument auf Basis der Vorlage erstellen  
    objWord.Documents.Add "C:\Users\xUSER\Desktop\Vorlage.docx"  
    objWord.Visible = True

' Daten aus Excel in Word-Vorlage übertragen  
    Sheets("Eingabe").Activate  
    strTyp = Range("C25").Value      
    strBetrag = Range("I23").Value  
    strLaufzeit = Range("L6").Value  
    strFreiSW = Range("L9").Value  
    
    objWord.ActiveDocument.Bookmarks("Typ").Range.Text = strTyp  
    objWord.ActiveDocument.Bookmarks("Betrag").Range.Text = strBetrag  
    objWord.ActiveDocument.Bookmarks("Laufzeit").Range.Text = strLaufzeit  
    objWord.ActiveDocument.Bookmarks("Frei_sw").Range.Text = strFreiSW  

End Sub

Die Zelle für den Betrag (I23) wird in Excel berechnet (I21-I22) und zeigt den Betrag 69,00 an.
Die Zelle für FreiSW (L9) zeigt eine 4-stellige Zahl, ohne Kommastellen an, z.B. 4.500.

Der Button und das Kopieren der Werte in das Word-Dokument funktioniert bereits. Leider gehen die Formatierungen verloren, sodass z.B. beim Betrag statt 69,00 nur 69, bzw. statt 69,90 nur 69,9 ausgegeben wird. Zudem fehlen mir im Word-Dokument die 1000er Trennzeichen ("."), es wird also 4500 statt der gewünschten 4.500 übertragen.

Hat jemand eine Idee, wie ich die Werte korrekt übertragen kann?

Danke u. Grüße I.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 668343

Url: https://administrator.de/forum/excel-vba-werte-in-word-dokument-uebertragen-668343.html

Ausgedruckt am: 05.05.2025 um 05:05 Uhr

150704
Lösung 150704 24.09.2024 aktualisiert um 13:22:52 Uhr
Goto Top
Sub Word_erstellen()
    ' Variablen definieren  
    Dim strTyp As String, strBetrag As String, strLaufzeit As String, strFreiSW As String, objWord As Object, doc As Object
    ' Word-Object erstellen  
    Set objWord = CreateObject("Word.Application")  
    objWord.Visible = True
    ' Ein neues Word-Dokument auf Basis der Vorlage erstellen  
    Set doc = objWord.Documents.Add("C:\Users\xUSER\Desktop\Vorlage.docx")  
    ' Daten aus Excel in Word-Vorlage übertragen  
    With Sheets("Eingabe")  
        strTyp = .Range("C25").Text  
        strBetrag = .Range("I23").Text  
        strLaufzeit = .Range("L6").Text  
        strFreiSW = .Range("L9").Text  
    End With
    With doc
        .Bookmarks("Typ").Range.Text = strTyp  
        .Bookmarks("Betrag").Range.Text = strBetrag  
        .Bookmarks("Laufzeit").Range.Text = strLaufzeit  
        .Bookmarks("Frei_sw").Range.Text = strFreiSW  
    End With
End Sub
kpunkt
Lösung kpunkt 24.09.2024 um 13:19:22 Uhr
Goto Top
IceAge
IceAge 24.09.2024 um 14:24:38 Uhr
Goto Top
Perfekt, vielen lieben Dank euch Beiden, der von Ted555 vorgeschlagene Weg hat super funktioniert.

Grüße I.