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

Excel nach Word - Probleme mit Format in Word

Excel nach Word - Probleme mit Format in Word
a_ke
Hallo,
ich benötige Hilfe zu folgendem Sachverhalt:
Von Excel wird der Inhalt eines Bereichs zeilenweise nach Word in Textformularfelder übertragen.
Dabei sollen diese in Word in folgender Gliederung erscheinen. Die jeweiligen Punkte und der zugehörige
Text müssen in einer Zeile stehen. (Unterstriche sind in Word Leerzeichen bzw. Tab-Abstand)
Punkt1_____Text zu Punkt1
Punkt2_____Text zu Punkt2
___________weiterer Text zu Punkt2
Punkt3_____Text zu Punkt3
Bei längeren Texten tritt das Probem auf, das der Text dann am Zeilenanfang weitergeschrieben wird
und nicht wie gewünscht. Das sieht dann so aus.
Punkt1_____Text zu Punkt1
Punkt2_____Text zu Punkt2
weiterer Text zu Punkt2
Punkt3_____Text zu Punkt3
In einer zweiten Variante des Makros habe ich es mit zwei Textformularfeldern in einer Word-Tabelle
probiert. Dabei müsste dann jede Zeile aus Excel in eine neue Zeile der Tabelle geschrieben werden
werden. Für die weitere Bearbeitung würde ich diese Variante favorisieren, wenn sie denn funktioniert.
Zur Veranschaulichung habe ich beide Musterdateien als zip-File mit hochgeladen.
https://www.herber.de/bbs/user/80489.zip
Code derzeit:
Sub NachWord()
Dim appWord As Object
Dim docTest As Object
Dim str As String
Dim rng As Range
Set appWord = CreateObject("Word.Application")
Set docTest = appWord.Documents.Add(Worksheets("Tabelle1").Range("B1").Value)
appWord.Visible = True
docTest.Activate
'Variante 1
For Each rng In Worksheets("Tabelle1").Range("B10:B15")
If LCase(rng) = "x" Then
str = str & rng.Offset(0, 1) & Chr(9) & rng.Offset(0, 2) & Chr(11)
End If
Next rng
docTest.Bookmarks("vonExcel").Range.Text = str
 'Variante 2 mit Tabelle in Word
Dim str1 As String
Dim str2 As String
For Each rng In Worksheets("Tabelle1").Range("B10:B15")
If LCase(rng) = "x" Then
str1 = str1 & Chr(10) & rng.Offset(0, 1)
str2 = str2 & Chr(10) & rng.Offset(0, 2)
End If
Next rng
docTest.Bookmarks("vonExcel1").Range.Text = str1
docTest.Bookmarks("vonExcel2").Range.Text = str2
Set docTest = Nothing
Set appWord = Nothing
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Excel nach Word - Probleme mit Format in Word
09.06.2012 12:11:11
Christian
Hallo?
würdest du deinen Namen angeben, könnte man dich ansprechen....
Zum Thema - ich steh' mit Word auf Kriegsfuß - eine daher eher holprige Variante wäre bei gesetzten Verweis auf die Microsoft Word Object Library die Folgende:
Option Explicit
Sub NachWord()
Dim appWord As Word.Application
Dim docTest As Object
Dim rng As Range
Set appWord = New Word.Application
Set docTest = appWord.Documents.Add(Worksheets("Tabelle1").Range("B1").Value)
appWord.Visible = True
docTest.Activate
docTest.Bookmarks("vonExcel1").Select
With appWord.Selection
For Each rng In Worksheets("Tabelle1").Range("B10:B15")
If LCase(rng) = "x" Then
.TypeText Text:=rng.Offset(0, 1)
.MoveRight
.TypeText Text:=rng.Offset(0, 2)
.MoveDown
.MoveLeft
End If
Next rng
End With
Set docTest = Nothing
Set appWord = Nothing
End Sub
Läuft soweit unter Office 2002 und 2010.
Hilft dir das weiter? Wenn du 'ne bessere Lösung findest, bitte hier posten.
Gruß
Christian
Anzeige
AW: Excel nach Word - Probleme mit Format in Word
09.06.2012 14:12:02
Andre
Hallo Christian,
besten Dank für deine Meldung.
sorry ich hatte den Namen vergessen: Andre .
Ich habe es bei mir probiert. Es klappt bis auf eine Kleinigkeit ganz gut. Die Werte werden 1a in die
zwei Tabellenspalten eingetragen. Also optisch erst einmal einwandfrei.
Es müssen in der Word-Vorlage dann lediglich so viele Zeilen vorab in der Tabelle erstellt werden, wie maximal in der Excel Range anwählbar sind. Bei jetzt B10:B15 also 6 Zeilen. Wenn ich den Bereich aber ausweiten möchte,
muss ich im Word Frmular vorab aber auch mehr Platz freihalten.
Da wäre noch die Frage, ob sich die Tabelle in Word dynamisch gestalten läßt.
Grundeinstellung mit 1 Zeile und dem enthaltenen Textformularfeld und dann nach jeder abgearbeiteten Zeile dynamisch erweitern.
Hat da jemand eine Idee ?
Die Datei mit der alten und der neuen Variante von Christian habe ich hier noch einmal als zip:
https://www.herber.de/bbs/user/80493.zip
Noch eine Frage zum Verweis auf die Microsoft Word Object Library. Muss dieser auf jedem Rechner
separat gesetzt werden, der die Datei nutzt, oder nur einmal bei der Erstellung des VBA Projekts ?
Grüße
Andre
Anzeige
AW: Excel nach Word - Probleme mit Format in Word
09.06.2012 16:33:59
Christian
Hi Andre,
Wie man das richtig macht - keine Ahnung - ist ja auch ein Excel-Forum.
Ggf. wäre es besser eine Tabelle in Excel zu erzeugen und diese komplett an eine vorgegebene Stelle im Word-Dokument einzufügen. Frage noch offen.
Zu deiner Frage bzgl Verweise:
Ja, beim Kopieren auf einen anderen Rechner wird der Verweis auf die Bibliothek mit kopiert. Wenn dort aber eine andere Office-Version installiert ist, läuft der Verweis ins Leere. Daher ist Late Binding die bessere Alternative. Bei der Entwicklung ist aber das Setzten von Verweisen auf entsprechende Bibliotheken ganz hilfreich, da hier die Intellisense und die VBA Hilfe zur Verfügung steht.
In deiner finalen Version sollte also der Verweis auf Word nicht mehr notwendig sein.
Gruß
Christian
Anzeige
AW: Excel nach Word - Probleme mit Format in Word
10.06.2012 10:56:37
Andre
Hallo Christian,
noch einmal vielen Dank für deine Hilfe. Ich kann jetzt damit weiterarbeiten.
Für die weitere Bearbeitung der Tabelle sehe ich mich noch mal in den Word Foren um.
Wenn ich noch Verbesserungen finde, werde ich die endgültige Version hier noch mal hochladen.
Vielleicht nützt es jemandem bei späteren Recherchen.
Noch einen schönen Sonntag.
Andre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige