VBA Text von Excel zu Word
07.10.2022 14:49:31
Excel
ich taste mich aktuell an das Thema VBA heran um aus einer Kalkulation Excel direkt ein Angebot in Word erstellen zu können.
Hierzu übertrage ich bereits den Inhalt einzelner Zellen an Bookmarks in Word. Das funktioniert soweit einwandfrei.
Was mir aktuell Probleme bereitet, ist das Übertragen mehrere Zellen an eine einzelne Bookmark.
Ich habe hierzu auf dem Blatt der Excel-Tabelle, auf welchem die Kalkulation der einzelnen Angebotspositionen durchgeführt wird, einen Zellbereich mit dem Namen "Positionen" versehen. Äquivalent dazu habe ich eine Bookmark mit dem Namen "Positionen" im Angebot.docx angelegt.
Unten dargestellt ist der gesamte Code des Makros.
Probleme bereitet "Angebot.bookmarks("Positionen").Range.Text = Worksheets("Kalkulation").Range("Positionen")"
Ich habe wirklich 0,0 Ahnung von VBA und habe mir den Code mittels Recherche im Netz zusammengebastelt.
Mein Wunsch wäre es nun, von dem Blatt "Kalkulation" bspw. B2 bis B120 als Text in Word zu übertragen und bestenfalls noch die Möglichkeit zu haben, eine Formatierung vorzunehmen. Ich würde dafür in Spalte A gerne über diverse Kürzel die Info hinterlegen, ob der Text in Spalte B eine Überschrift ist, oder ob er sich vom Einzug her in Listenebene 1, oder 2 etc. befindet. Ist das möglich?
So sollte das Ganze im Angebot später aussehen:
Ich schlage mich damit nun seit Tagen herum und hoffe wirklich, dass mir hier jemand helfen kann.
Vielen, vielen Dank vorab!!!
Sub Word()
Dim Angebot As Object
Dim appWord As Object
Set appWord = CreateObject("Word.Application")
Set Angebot = appWord.documents.Add("C:\Users\marcel.burk\Desktop\Automation Angebote Test\FM 03-51 Angebotsvorlage.docx")
appWord.Visible = True
Angebot.Activate
Angebot.bookmarks("Unternehmen").Range.Text = Range("Unternehmen")
Angebot.bookmarks("Anrede").Range.Text = Range("Anrede")
Angebot.bookmarks("Vorname").Range.Text = Range("Vorname")
Angebot.bookmarks("Nachname").Range.Text = Range("Nachname")
Angebot.bookmarks("Nachname2").Range.Text = Range("Nachname2")
Angebot.bookmarks("Straße").Range.Text = Range("Straße")
Angebot.bookmarks("PLZ").Range.Text = Range("PLZ")
Angebot.bookmarks("Ort").Range.Text = Range("Ort")
Angebot.bookmarks("Projektname").Range.Text = Range("Projektname")
Angebot.bookmarks("Projektnummer").Range.Text = Range("Projektnummer")
Angebot.bookmarks("Position").Range.Text = Range("Position")
Angebot.bookmarks("Ersteller").Range.Text = Range("Ersteller")
Angebot.bookmarks("Kürzel").Range.Text = Range("Kürzel")
Angebot.bookmarks("Mobil").Range.Text = Range("Mobil")
Angebot.bookmarks("Festnetz").Range.Text = Range("Festnetz")
Angebot.bookmarks("Email").Range.Text = Range("Email")
Angebot.bookmarks("Kundennummer").Range.Text = Worksheets("AN_txt").Range("Kundennummer")
Angebot.bookmarks("Positionen").Range.Text = Worksheets("Kalkulation").Range("Positionen")
Angebot.SaveAs Filename:="C:\Users\Public\Documents\" & ("A") & Sheets("AN_txt").Range("Projektnummer") & (", ") & Sheets("AN_txt").Range("Unternehmen")
Set Angebot = Nothing
Set appWord = Nothing
End Sub