Anzeige
Archiv - Navigation
1108to1112
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

WORD-Datei in EXCEL-Datei umwandeln

WORD-Datei in EXCEL-Datei umwandeln
Werner
Excel-Level: befriedigend
Hallo Freunde,
habe mal ein Frage, die sich auf Excel und Word zugleich bezieht: Was muss man tun, um ein mit WORD
erstelltes Manuskript, also eine Word-Datei, in eine Excel-Datei umzuwandeln. Die hier zur Debatte stehende WORD-Datei ist wie
folgt aufgebaut: Erst kommt durchgehender Text (d.h. normal formatierter Text), dann einige Anwendungsbeispiele in Form einer WORD-Tabelle,
dann wieder durchgehender Text, dann wieder einige Anwendungsbeispiele in Form einer WORD-Tabelle,
usw. (Der durchgehende Text enthält die Erklärungen zu den jeweils folgenden Anwendungsbeispielen.)
Die Anwendungsbeispiele in Form von WORD-Tabellen sind in Spalten unterteilt, die dann in Excel natürlich auch als Spalten erscheinen sollen. Der durchgehende Text hingegen soll in Excel als jeweils selbständige Zeile in einer Spalte rechts von den anderen Excel-Spalten erscheinen. (Das scheint nur so möglich zu sein, denn wenn ich den durchgehenden Text in Excel in eine ge-mergte Zeile bringen würde, könnte ich die Excel-Spalten überhaupt nicht mehr sortieren, weil EXCEL das verweigern würde.)
Könnt ihr mir sagen, mit welchem VBA-Code man eine solche WORD-Datei automatisch auf EXCEL übertragen kann?
Besten Dank im voraus!! Werner R.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: WORD-Datei in EXCEL-Datei umwandeln
22.10.2009 14:24:46
fcs
Hallo Werner,
nicht so ganz einfach das umzusetzen, da hier die relevanten Positionen im Worddokument immer genau angesteuert werden müssen. Nachfolgend mein Lösungsvorschlag für ein Word-Makro.
Gruß
Franz
'Makro in Word 2003 erstellt
'Für Funktion muss der Verweis auf
'Microsoft Excel x.y Object Library
'im Word-VBA-Editor gesetzt werden
Sub TextandTabsToExcel()
Dim wdDok As Word.Document, wdRange As Word.Range
Dim wdTabelle As Word.Table, wdPos1 As Long, wdPos2 As Long
Dim xlWb As Excel.Workbook, xlWks As Worksheet, xlZeile As Long, xlSpalte As Long
Dim strText As String, varText, intI As Long
Dim objXlApp As Object
'Worddokument zuordnen
Set wdDok = ActiveDocument
'Excel-Anwendungsobjekt anlegen und neue Datei mit einem Tabellenblatt
Set objXlApp = CreateObject("Excel.Application")
objXlApp.Visible = True
Set xlWb = objXlApp.Workbooks.Add(Template:=xlWBATWorksheet)
Set xlWks = xlWb.Worksheets(1)
xlZeile = 1
wdPos1 = 0
wdPos2 = 0
'Spalte für Einfügen des Textes rechts neben Tabellen bestimmen
For Each wdTabelle In wdDok.Tables
If xlSpalte  wdRange.Start Then
'Text vor Tabelle erfassen
wdPos2 = wdRange.Start - 1
If strText = "" Then
strText = wdDok.Range(wdPos1, wdPos2).Text
Else
strText = strText & wdDok.Range(wdPos1, wdPos2).Text
End If
'Word-Tabelle kopieren
wdRange.Copy
xlWks.Paste
'Text am Abschnittswechsel splitten
varText = Split(strText, Chr(13))
'Text Zeilenweise einfügen
For intI = LBound(varText) To UBound(varText)
xlWks.Cells(xlZeile, xlSpalte) = varText(intI)
xlZeile = xlZeile + 1
Next
xlZeile = xlWks.Cells.SpecialCells(xlCellTypeLastCell).Row + 2
xlWks.Cells(xlZeile, 1).Select
strText = ""
wdPos1 = wdRange.End
End If
Next
'Spalten in Excel-Tabelle formatieren
With xlWks
'Spalten aus Tabellen in Word
With .Range(.Columns(1), .Columns(xlSpalte - 1))
.ColumnWidth = 50
.EntireColumn.AutoFit
.VerticalAlignment = xlVAlignTop
.WrapText = True
End With
'Spalte mit Texten
With .Columns(xlSpalte).EntireColumn
.VerticalAlignment = xlVAlignTop
.ColumnWidth = 50
.WrapText = True
End With
End With
End Sub

Anzeige
Zwischenmeldung mit Dank
23.10.2009 03:55:27
Werner
Hallo Franz,
das ist ja ein mächtiges Programm, das sicherlich viel Arbeit gemacht hat. Vielen herzlichen Dank! Ich
weiss diese Mühe wohl zu schätzen.
Da
ich mit WORD-Programmierung weniger vertraut bin, muss ich mich erst einmal etwas in die Materie einlesen
und dein Programm dann studieren.
Ich melde mich dann, spätestens morgen, noch einmal, und berichte, was das Programm bewirkt hat.
Beste Grüße! Werner R.
Zeilennummer wie anpassen?
23.10.2009 07:59:08
Werner
Hallo Franz,
habe dein Programm ausprobiert. Es ruft tatsächlich eine Excel-Datei ins Leben und überträgt die
WORD-Absätze und die Beispiele. Die Beispiele stehen in einer Spalte untereinander. Soweit ist alles
hervorragend.
Ein Problem gibt es jedoch mit den Zeilen in der Excel-Datei. Das kommt aber wahrscheinlich daher,
dass ich in meiner Fragestellung nicht darauf hingewiesen habe: Die Beispiele, die sich jeweils auf
einen WORD-Text beziehen, sollten mit diesem Text niemals in einer gleichen
Excel-Zeile erscheinen, sondern das erste Beispiel muss in der Excel-Datei eine Zeile unter Ende des ursprünglichen WORD-Textes beginnen. Da ich mich in der WORD-Programmierung nicht auskenne,
weiss ich nicht, wie ich den Makro korrigieren soll. Doch wahrscheinlich muss nur an ein zwei Stellen
ein Parameter geändert werden, dann kommt alles wahrscheinlich genau hin.
Vielleicht kannst du mir noch sagen, wo ich diese Änderung im Code vornehmen muss.
Besten Dank!! Werner R.
Anzeige
AW: Zeilennummer wie anpassen?
23.10.2009 12:29:16
fcs
Hallo Werner,
durch ändern der Einfügereihenfolge und des Zeilenzählens in der Exceltabelle geht es.
Dazu den folgenden Abschnitt im Makro ändern.
Gruß
Franz
    If wdPos2  wdRange.Start Then
'Text vor Tabelle erfassen
wdPos2 = wdRange.Start - 1
If strText = "" Then
strText = wdDok.Range(wdPos1, wdPos2).Text
Else
strText = strText & wdDok.Range(wdPos1, wdPos2).Text
End If
'Text am Absatzwechsel splitten
varText = Split(strText, Chr(13))
'Text Zeilenweise einfügen
For intI = LBound(varText) To UBound(varText)
xlWks.Cells(xlZeile, xlSpalte) = varText(intI)
xlZeile = xlZeile + 1
Next
'Word-Tabelle kopieren
xlWks.Cells(xlZeile, 1).Select 'erforderlich, da sonst Paste nicht funktioniert
wdRange.Copy
xlWks.Paste
'Werte für nächsten Abschnitt setzen/zurücksetzen
xlZeile = xlWks.Cells.SpecialCells(xlCellTypeLastCell).Row + 2
strText = ""
wdPos1 = wdRange.End
End If

Anzeige
OK und Dank!
24.10.2009 06:52:48
Werner
Hallo Franz,
jetzt hab ich es, mit deiner Hilfe, endlich hingekriegt! Das Ergebnis beeindruckt mich wirklich, vor allem
weil dieser Makro ja von WORD aus auf WORD und EXCEL zugreift! Solche Beispiele sind in den
Lehrbüchern ziemlich selten. Nochmals vielen herzlichen Dank!
Die Select-Anweisung ist natürlich notwendig, weil der Makro sonst wahrscheinlich oben in der Excel-
Tabelle anfangen und bereits erstellte Einträge überschreiben würde.
Diesen Makro kann man sicherlich für verschiedene Zwecke auch noch entsprechend abwandeln, um
damit von WORD aus Daten nach EXCEL zu übertragen.
Beste Grüße! Werner R.
Anzeige
AW: Inhalte von Word nach Excel
24.10.2009 12:51:36
Word
Hallo Werner,
danke für die Blumen.
Ich hab jetzt noch einmal ein wenig das Ganze verfeinert.
Man kann die Inhalte der Wordtabellen auch Zellenweise nach Excel übertragen. Das geht dann auch ohne Zellenselektion in dem Excelblatt.
Das Makro startet jetzt mit einem Auswahldialog, wie die Inhalte der Tabellen nach Excel übertragen werden sollen.
Gruß
Franz
Da Makro schon ziemlich umfangreich hier als Textdatei hochgeladen.
https://www.herber.de/bbs/user/65303.txt

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige