iceage
Goto Top

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.

Content-ID: 668343

Url: https://administrator.de/contentid/668343

Ausgedruckt am: 27.09.2024 um 13:09 Uhr

Ted555
Lösung Ted555 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.