Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro Excel zu Word | Textstelle auswählen

Makro Excel zu Word | Textstelle auswählen
14.11.2017 11:00:19
Felix
Hallo Zusammen,
ich habe erst vor kurzem und wegen meiner aktuellen Aufgabenstellung mit VBA angefangen. Entsprechend habe ich hier wirklich keine Erfahrung.
Meine Aufgabenstellung war es, über eine Eingabemaske (in Excel) Angaben machen
zu können (z.B. Name, Adresse,...). Anhand dieser Angaben sollen Textbausteine
ausgewählt und befüllt werden und diese in ein Worddokument gem. einer Vorlage
integriert werden.
Den Großteil konnte ich mir über Youtube schon zusammensuchen. Mein Code sieht bisher so aus:
---------------------------------------

Sub CreateBasicWordReport()
Dim wApp As Word.Application
Dim Savename As String
Set wApp = New Word.Application
With wApp
.Visible = True
.Activate
.Documents.Add "Link zum Dokument"
Savename = Environ("UserProfile") & "\Desktop\Test " & Format(Now, "dd_mm_yyyy hh_mm") &  _
_
_
".docx"
.ActiveDocument.SaveAs2 Savename
range("B51:B438").Select
range("B438").Activate
Selection.Copy
.Selection.Paste
End With
Set wApp = Nothing
End Sub

-------------------------------------------------
Bisher funktioniert auch alles. Der richtige Text wird eingefügt und in das richtige
Dokument (den Link habe ich im Code raus gelassen) eingefügt.
Jetzt möchte ich:
1) Den Zelleninhalt als Text und nicht als Tabelle in Word einfügen
2) Den Zelleninhalt erst nach der Überschrift meiner Dokumentenvorlage einfügen
3) Die Formatierung des Textes soll im Blocksatz sein.
optional:
Ich habe bei meinen Textbausteinen Überschriften. Diese würde ich gerne automatisch formatieren, ich weiß auch, in welchen Zellen diese stehen und die Zellen verändern sich nicht. Eben nur die Werte in den Zellen.
Vielen Dank für eure Hilfe!
Excel sitzt ganz gut, von VBA wie gesagt keine Ahnung :)
Viele Grüße
Felix
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Excel zu Word | Textstelle auswählen
15.11.2017 01:09:21
fcs
Hallo Felix,
hier eine Möglichkeit den Inhalt der Zellen nach Word zu übertragen.
Am einfachsten wird es, wenn du die Einfügeposition in der Wordvorlage als Textmarke (Bookmark) festlegt oder am Ende des Dokuments eingefügt werden soll.
Die Einfüge-Zeile sollte ein leerer Absatz sein.
Übertragen werden mit meinem Makro nur die im Excel-Blatt sichtbaren Zeilen.
Gruß
Franz
Sub CreateBasicWordReport()
Dim wApp As Word.Application
Dim wDoc As Word.Document
Dim wdRange As Word.Range
Dim Savename As String
Dim Zeile As Long
Dim sText As String
Set wApp = New Word.Application
With wApp
.Visible = True
.Activate
.Documents.Add "C:\Users\Public\NeuTest\Word-Muster.dotx" 'Dateiname Vorlage
Savename = Environ("UserProfile") & "\Desktop\Test " & Format(Now, "dd_mm_yyyy hh_mm") _
& ".docx"
Set wDoc = .ActiveDocument
wDoc.SaveAs2 Savename
'Einfüge-Zeile muss ein leere Absatz sein
'Start für das Einfügen ist per Textmarke definiert
'Set wdRange = wDoc.Bookmarks("Excel_Einfuegen").Range 'Start ist per Textmarke  _
definiert
'Start für das Einfügen ist am Ende des Documents
Set wdRange = wDoc.Range(wDoc.StoryRanges(wdMainTextStory).End - 1, _
wDoc.StoryRanges(wdMainTextStory).End - 1)
For Zeile = 51 To 438
If Rows(Zeile).Hidden = False Then
sText = Cells(Zeile, 2).Text
With wdRange
'Zelltext + Absatzschaltung einfügen
.Text = sText & Chr(13)
Select Case Zeile
Case 51, 57, 67 'Zeilen mit Überschriften
With .ParagraphFormat
.SpaceBefore = 6
.SpaceAfter = 0
.LineSpacingRule = wdLineSpaceAtLeast
.LineSpacing = 22
.Alignment = wdAlignParagraphJustify
End With
.Font.Bold = True
Case Else 'andere Zeilen
With .ParagraphFormat
.SpaceBefore = 0
.SpaceAfter = 0
.LineSpacingRule = wdLineSpaceAtLeast
.LineSpacing = 16
.Alignment = wdAlignParagraphJustify
End With
End Select
End With
Set wdRange = wDoc.Range(wdRange.End, wdRange.End)
End If
Next
End With
Set wApp = Nothing
End Sub

Anzeige
AW: Makro Excel zu Word | Textstelle auswählen
15.11.2017 09:39:28
Felix
Hallo Franz,
vielen Dank für deine Hilfe!
Hat alles geklappt. :)
LG Felix
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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