Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1588to1592
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige