Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Word Dokument in Excel einlesen

Betrifft: Word Dokument in Excel einlesen von: Silva
Geschrieben am: 11.08.2008 11:24:07


Hallo an alle Exceluser,

ich stehe mal wieder vor einer neuen Herausforderung und komme nicht weiter.

Ich habe ca. 100 Worddateien (ALLE gleich aufgebaut). Und ich habe 1 Exceldatei.
Jetzt möchte ich eine definierte Anzahl an Informationen automatisch aus den Worddateien in Excel einlesen!

Die Informationen stehen im Wordokument an unterschiedlichen Stellen (als Text, als Text in Wordtabelle) Bsp. km-stand, Motorennummer, Betriebsstunden, etc.
Diese Informationen sollen jetzt Spaltenweise in Excel eingelesen werden d.h. Zelle B1 = km-Stand, B2 = Motorennummer, B3 0 Betriebsstunden, etc. ... --> pro Worddokument gibt es eine neue Zeile in Excel mit den entsprechenden Infos.

Die Frage ist, wie mache ich das??????????

Die Worddateien nacheinander öffnen ist kein Problem ...

Bin für alle Lösungsvorschläge, Hinweise wo ich die Lösung finde, etc. sehr dankebar!

Gruss und Dank,
Silva

  

Betrifft: AW: Word Dokument in Excel einlesen von: Tino
Geschrieben am: 11.08.2008 17:36:37

Hallo,
hier mal ein Beispiel.
Um aber Deinen Text raus zu filtern, muss man deine Worddatei besser kennen.


!!! benötigt den Verweis Microsoft Word 11.0 Object Library !!!
(kann auch 10.0 oder so sein, ist Versionsabhängig)


Option Explicit
Sub WordNachExcel()
    Dim objWordApp As New Word.Application
    Dim objWordDok As Word.Document
    Dim Pfad As String, strFile As String
    Dim varText As Variant
   
    On Error GoTo Fehler:
    Application.ScreenUpdating = False
    
    Pfad = _
    IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
    Set objWordApp = CreateObject("Word.Application")
    objWordApp.Application.ScreenUpdating = False
    objWordApp.Visible = False 'True zum ausblenden

strFile = Dir(Pfad & "\*.doc")

Do While strFile <> "" 'Schleife bis keine Word mehr da
  'Datei öffnen
  Set objWordDok = objWordApp.Documents.Open(Pfad & strFile)
  
  With objWordApp
    'Text markieren
    .Selection.WholeStory
    'markierung in Veriable
    varText = .Selection
  '....
  '....###############################################
  '***hier muss der Text zerlegt werden um ihn in die Zellen zu schreiben
  'ist nur ein Beispiel!!!!
  Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = varText
  '
  '....
  '....
  End With
  
  'Word wieder schließen
  objWordDok.Close False
  'Objektvar. wieder freigeben
  Set objWordDok = Nothing
  'nächstes Worddoc.
strFile = Dir
Loop
    
  objWordApp.Application.ScreenUpdating = True
  objWordApp.Quit
If Not objWordDok Is Nothing Then Set objWordDok = Nothing
If Not objWordApp Is Nothing Then Set objWordApp = Nothing


Application.ScreenUpdating = True
Exit Sub

Fehler:
  On Error Resume Next
    objWordDok.Close False
    objWordApp.Quit
    If Not objWordDok Is Nothing Then Set objWordDok = Nothing
    If Not objWordApp Is Nothing Then Set objWordApp = Nothing
  On Error GoTo 0
  Application.ScreenUpdating = True
  MsgBox "Fehler!", vbCritical
  
End Sub




Gruß Tino

www.VBA-Excel.de




  

Betrifft: AW: Word Dokument in Excel einlesen von: Silva
Geschrieben am: 12.08.2008 14:28:09

Hallo Tino,

erstmal vielen Dank für deine Antwort und den Code!!!
Allerdings komme ich damit noch nicht ganz klar. Was heisst "!!! benötigt den Verweis Microsoft Word 11.0 Object Library !!!".
das Makro läuft bei mir leider nicht. Vermutung: es liegt daran, dass ich obigen Hinweis nicht verstehe. Fehlermeldung: "Fehler beim kompillieren. Benutzerdefinierter Typ nicht definiert." in Codezeile "Dim objWordApp As New Word.Application" + folgende Dim

Das Worddokument besteht aus Tabellen.
Tabelle 1 = 1 Zeile, 1 Spalte --> Überschrift
Tabelle 2 = Spalte 1 ist eine verbunden Zelle von 5 Zeilen, in Zeile 1 gibt es 3 Spalten, in Zeile 2 - 5 jeweils 4 Spalten

Aus den Tabellen 2 - x müssen jeweils diverse Infos ausgelesen werden.
Tablelle 2 wiederholt sich im gesamten Dokument vom Aufbau her.

kann man jetzt sagen wie die Informationen ausgelesen werden können? (nur die Codesystematik, wie finde ich in Word bestimmt Stellen?)

Danke für deine / eure Hilfe
Gruss, Silva


  

Betrifft: AW: Word Dokument in Excel einlesen von: Tino
Geschrieben am: 12.08.2008 15:16:50

Hallo,
die Aktivierung des Verweises musst du im VBA- Editor unter
Extras – Verweise, in dieser Liste diesen Verweis Suchen und setzten.

Ohne direkte Beispieldateien kann ich Dir so leider nicht helfen, da dies unter Umständen recht komplex wird und du bestimmt Schwierigkeiten mit der Umsetzung meiner Angaben bekommst

Unter Beispieldatei verstehe ich eine Worddatei mit dem entsprechenden Aufbau und angaben welche Daten wo in die Exceldatei müssen.


Gruß Tino


  

Betrifft: AW: Word Dokument in Excel einlesen von: Silva
Geschrieben am: 12.08.2008 15:40:24



Hallo Tino,

ok, kein Problem! Hier das BeispielWordDokument (https://www.herber.de/bbs/user/54541.doc).
Vielen tausend Dank für deine Hilfe!!!!!!
Alle rot markierten Informationen (in Word) müssen zeilenweise in Excel. und das für alle ca. 100 Worddokumente.

Gruss Silva


  

Betrifft: AW: Word Dokument in Excel einlesen von: Tino
Geschrieben am: 12.08.2008 17:13:24

Hallo,
teste mal, denke daran zuvor den Verweis zu setzen.

https://www.herber.de/bbs/user/54544.xls

Eventuell musst du den Pfad noch anpassen.

Die Zeile
Pfad = _
IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")

Geht davon aus, dass sich die Worddateien im gleichen Ordner wie die Exceldatei befinden.

Sonst mach aus dieser Zeile zum Beispiel:
Pfad= "C:\MeinPfad\"

Gruß Tino


  

Betrifft: AW: Word Dokument in Excel einlesen von: Silva
Geschrieben am: 13.08.2008 14:09:21

Hallo Tino,

ich habe das Makro jetzt getestet und es funktioniert einwandfrei.!!!! Super, vielen tausend Dank!!
Ich habe noch ein paar kleinere Anpassungen gemacht:
1.) Worddokumente werden ZEILENWEISE in Excel eingelesen
2.) anderer Kriterien definiert, welche Daten aus dem Worddokument ausgelesen werden sollen.

Jetzt habe ich noch eine zusätzliche Frage.
Ist es möglich, und wenn ja wie, "Freitext" ebenfalls auszulesen. Freitext im Sinne von Text, welcher nicht in ein Textfeld, in eine Tabelle, etc. integriert ist, sondern ganz normaler Fliesstext. Diesen Text kann ich ja dann nicht über Zellpositionen (A, B) definieren.

Vielen Dank nochmal!!!
Silva


  

Betrifft: AW: Word Dokument in Excel einlesen von: Tino
Geschrieben am: 13.08.2008 15:37:28

Hallo,
super dass es erst mal Funktioniert.
Für Freitexte ist dies wieder ein Problem, man muss die Position im Dokument finden, diesen Text wieder in einen String einlesen und in diesem wiederrum die Position deiner Textstelle herausfinden.

Gruß Tino

www.VBA-Excel.de




 

Beiträge aus den Excel-Beispielen zum Thema "Word Dokument in Excel einlesen"