Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
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

textformatierung in word durch Excel vba

textformatierung in word durch Excel vba
12.08.2014 11:24:29
Knoof
Hallo,
Ich habe ein Programm(UserForm) welches durch einen Button Texte aus einer anderen Exceldatei, in ein Word dokument schreibt.
Das Problem ist nur das diese Texte nicht wirklich schön formatiert sind in Word.
Wie zum Beispiel bei einer Aufzählung mit bindestrichen wird der Text einfach untereinanders geklatscht ohne schöne abstände zum gedankenstrich.
Nun wollte ich euch Fragen ob es da möglichkeiten gibt dies von Excel aus zu steuern wie die Texte letztendlich in das Word dokument eingefügt werden.
Das Programm soll nämlich automatisiert Dokumente schreiben welche schon eine gewisse Textformatierung erfordern.
Für jede Antwort Dankbar :)
Gruß,
Knoof

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: textformatierung in word durch Excel vba
12.08.2014 16:32:57
fcs
Hallo Knoof,
man kann sehr viele Aktionen in Word per Makro steuern - auch von Excel aus - allerdings ist die Programmierung noch etwas schwieriger wegen der Komplexität der verschiedenen Objekte in Word.
Um sich das Leben etwas zu erleichtern sollten in dem Worddokument/der Wordvorlage, die von Excel aus mit Inhalten gefüllt wird, alle beötigten Absatzformate schon als Formatvorlagen angelegt werden.
Das vereinfacht dir Programmierung, weil dann im Code diese "Styles" zugewiesen werden können.
Des weiteren hängt sehr viel davon ab, wie die Inhalte von Excel ins Dokument eingetragen werden.
Wenn du hier im Forum so richtig tief in die RECHERCHE abtauchst, dann findest du wahrscheinlich auch ein paar brauchbare Ansätze.
Gruß
Franz

Anzeige
AW: textformatierung in word durch Excel vba
13.08.2014 09:28:16
Knoof
Alles klar danke!
Eigentlich geht es nur darum das bestimmte zeilen einen Stichpunkt bekommen...
Da ich das vorher in der in Excel nicht machen kann, also dort wo die Texte hergenommen werden, muss ich das irgendwie über vba oder word regeln...
Wenn ich so ein AUfzählungspunkt vorher in WOrd in meine Textmarke einfüge sind alle neuen Zeilen mit solch einem Punkt versehen.
Also muss ich es irgendwie schaffen bestimmten Zeilen einen Aufzählungspunkt zuzuweisen :|
Gruß,
Knoof

AW: textformatierung in word durch Excel vba
13.08.2014 12:53:23
fcs
Hallo Knoof,
wenn du mit Textmarken als Einfügepositionen im Worddokument arbeitetst, dann ist es wahrscheinlich am "einfachsten" wenn du die Textinhalte aus Excel in einer Variablen sammelst, wobei zwischen den Textteilen Zeilenschaltungen eingebaut werden. Den Variableninhalt schreibst du dann ein Textmarke, die vorformatiert ist.
Gruß
Franz

Anzeige
AW: textformatierung in word durch Excel vba
13.08.2014 14:21:29
Knoof
Ohman das hört sich echt kompliziert an, kann mir darunter noch nicht wirklich was vorstellen.
JEdenfalls ist das der Code mit dem der Text in die Textmarke eingefügt wird.
Allerdings soll genau in dem Text ab einer bestimmten Stelle eine Auflistung(Punkte) beginnen.
If Me.checkdummy2 = True Then
With Sheets("Auswertungen").Cells(zeile, 19)
If strText = "" Then strText = .Text Else strText = .Text & Chr(13) & Chr(13) & strText
End With
End If

AW: textformatierung in word durch Excel vba
13.08.2014 15:36:47
fcs
Hallo Knoof,
wie wird denn die Stelle ermittelt, ab der in Word die Auflistung beginnen soll?
Ideal wäre es, wenn der Inhalt von strText auf 2 Variablen aufgeteilt würde.
Teil 1: Dieser Text wird an einer Textmarke mit "normaler" Formatierung eingefügt.
Teil 2: Dieser Text wird an einer Textmarke mit "Auflistungsformatierung" eingefügt.
Gruß
Franz

Anzeige
AW: textformatierung in word durch Excel vba
14.08.2014 08:30:24
Knoof
Hallo Franz,
Ja momentan wird da noch garnichts ermittelt.
Aber es werden immer Textblöcke eingefügt(zB. Dummy2 siehe oben) welche einen einleitenden Satz enthalten.
Und im gleichen textbaustein folgen einige Sätze die Als Aufzählung geschrieben werden sollen.
Also kann ich mir vorstellen dass EInleitender Satz und Aufzählungstext getrennt in variablen gespeichert werden könnten.
Nur bräuchte ich wohl etwas Hilfe bei dem Code.
Gruß,
Knoof

AW: textformatierung in word durch Excel vba
14.08.2014 12:26:04
fcs
Hallo Knoof,
hier ein Code-Beispiel, wie man so etwas lösen könnte. Die konkrete Lösung muss dann natürlich an die vorliegenden Daten angepasst werden.
Das Word-Musterdokument hat entsprechende Textmarken, wobei die Absatz mit den Textmarken für die einleitenden Zeile und die Absätze mit den Textmarken für die Auflistungen unterschiedlich formatiert sind.
Ale weitere Unterstützung ist dann nur noch mit Beispieldateien möglich.
Gruß
Franz
Sub Worddateiausfuellen()
'Excel-Objekte
Dim wkb As Workbook
Dim wks As Worksheet
'Word-Objekte
Dim wdApp As Object 'Word.Application
Dim wdDoc As Object 'Word.Document
'allgemeine Variablen
Dim Zeile As Long
Dim strText As String, strText1 As String, strText2 As String
Set wkb = ActiveWorkbook
Set wks = wkb.Worksheets("Tabelle1")
Set wdApp = VBA.CreateObject("Word.Application")
wdApp.Visible = True
'Musterdokument mit den Textmarken schreibgeschützt öffnen
Set wdDoc = wdApp.Documents.Open(Filename:="D:\Test\Test.doc", ReadOnly:=True)
With wks
For Zeile = 2 To 10
If .Cells(Zeile, 3) = "x" Then
'nach Word zu übertragender Text
strText = .Cells(Zeile, 2).Text
'Text an der 1. Zeilenschaltung teilen
strText1 = fncTeilen(strText, bolTeil1:=True) 'Zeilen-text
strText2 = fncTeilen(strText, bolTeil1:=False) 'Listentext
'Texte gemäß Bedingungen an Textmarken einfügen
Select Case Zeile
Case 3 To 5 '1. Textblock
wdDoc.Bookmarks("Textmarke01_Z").Range.Text = strText1
wdDoc.Bookmarks("Textmarke01_Liste").Range.Text = strText2
Case 7 To 8 '2. Textblock
wdDoc.Bookmarks("Textmarke02_Z").Range.Text = strText1
wdDoc.Bookmarks("Textmarke02_Liste").Range.Text = strText2
End Select
End If
Next
End With
wdApp.Activate
End Sub
Function fncTeilen(strText As String, bolTeil1 As Boolean, _
Optional strSep As String = vbLf)
'Text aufteilen am Trennzeichen/Trenntext
'strText  = aufzuteilender text
'bolTeil1 = True  -- Text links vom Trennzeichen wird zurückgegeben _
False -- Text rechts vom Trennzeichen wird zurückgegeben
'strSep   = Trennzeichen/Trenntext zwischen den Textteilen - Vorgabe = Zeilenschaltung
If strText = "" Then
fncTeilen = ""
Else
If InStr(1, strText, strSep) > 0 Then
If bolTeil1 = True Then
fncTeilen = Left(strText, InStr(1, strText, strSep) - 1)
Else
fncTeilen = Mid(strText, InStr(1, strText, strSep) + Len(strSep))
End If
Else
If bolTeil1 = True Then
fncTeilen = strText
Else
fncTeilen = ""
End If
End If
End If
End Function

Anzeige

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige