Microsoft Excel

Herbers Excel/VBA-Archiv

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

bestimmte Zeilen aus Word-Datei auslesen - Franz

Betrifft: bestimmte Zeilen aus Word-Datei auslesen - Franz von: roman
Geschrieben am: 05.08.2014 10:53:34

Ich bedanke mich herzlich bei Franz,
der mir zu diesem Thema helfen konnte!

Das VBA-Programm kann schon fast das, was es soll! Super!
Vielen Dank nochmal!

lg roman

  

Betrifft: AW: bestimmte Zeilen aus Word-Datei auslesen - Franz von: fcs
Geschrieben am: 07.08.2014 12:58:10

Hallo Roman,

vielen dank für die Rückmeldung.

Franz


  

Betrifft: AW: bestimmte Zeilen aus Word-Datei auslesen - Franz von: roman
Geschrieben am: 11.08.2014 11:53:44


Vielleicht kannst du mir da noch etwas helfen.
Programm bisher, nimmt genau den 3. Absatz und schreibt ihn in eine Zelle. Das passt schon fast.

Quelle:
(3. Absatz)
Projektnummer: PE 01-02 – Name – Ort
(4.Absatz)
Adresse: Straße 1, PLZ Ort

Ich würde gerne die Projektnummer (PE 01-02) in die 1. Spalte, Name in die 2. Spalte setzen.
Danach soll vom 4. Absatz noch die Straße mit Hausnummer in die 3. Spalte, die PLZ in die 4. Spalte und der Ort in die 5. Spalte geschrieben werden.

Da, ich nicht fähig bin das VBA Programm entsprechend umzuschreiben, bin ich auf deine Hilfe angewiesen. :-)

(Habe jetzt die Antwort-Funktion des Forums gefunden... ;-))

Vielen herzlichen Dank!
LG Roman


  

Betrifft: AW: bestimmte Zeilen aus Word-Datei auslesen - Franz von: fcs
Geschrieben am: 11.08.2014 12:56:44

Hallo Roman,

hier das Makro mit Anpassungen, um die Zeileninhalte auf verschiedene Spalten der Zeile zu verteilen.
Ich hatte etwas Probleme mit dem Bindestrich in der Zeile mit der Projektnummer im Wordtext. Das Makro sucht jetzt nach dem Minuszeichen.
Falls in deinen Wordtexten ein anderes Zeichen als Bindestrich verwendet wird, dann muss nochmals angepasst werden.

Gruß
Franz

'Erstellt unter MS Office 2010
'Code in einem allgemeinen VBA-Modul der Exceldatei
Sub Hole_Wordtexte()
  Dim strFileName As String
  Dim objWDApp As Object 'Word.Application
  Dim objDoc As Object  'Word.Document
  Dim wdRange As Object ' Word.Range
  Dim wks As Worksheet
  Dim strText As String
  
  Dim letztezeile
  Dim varVerzeichnis
  
  'On Error Resume Next
  With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Bitte Verzeichnis mit den Worddateien auswählen"
    If .Show = -1 Then
      varVerzeichnis = .SelectedItems(1)
    Else
      GoTo Beenden
    End If
  End With
  
  
  Set wks = ActiveSheet
  With wks
    letztezeile = .Cells(.Rows.Count, 1).End(xlUp).Row
  End With
  
  strFileName = Dir(varVerzeichnis & "\" & "*.doc")
  If strFileName <> "" Then
    Set objWDApp = CreateObject("Word.Application")
    objWDApp.Visible = True
  Else
    MsgBox "Keine Worddateien im gewählten Verzeichnis"
    GoTo Beenden
  End If
  
  
  Do Until strFileName = ""
    'Worddatei schreibgeschützt öffnen
    Set objDoc = objWDApp.Documents.Open(varVerzeichnis & "\" & strFileName, _
            ReadOnly:=True)
    'nächste freie Zeile Zeile in Excelblatt in Spalte B
    With wks
      letztezeile = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
      'Worddateiname
      .Cells(letztezeile, 1) = objDoc.Name
    
      'Text aus 3. Absatz/Paragraph übernehmen
      Set wdRange = objDoc.Paragraphs(3).Range
      strText = wdRange.Text
      'Projekt-Nummer / Name
      'Ort abtrennen
      strText = Trim(Left(strText, InStrRev(strText, "-") - 1))
      '"Projektnummer:" abschneiden
      strText = Trim(Mid(strText, Len("Projektnummer:") + 1))
      .Cells(letztezeile, 2) = "'" & Trim(Left(strText, InStrRev(strText, "-") - 1)) 'Projekt- _
Nr
      .Cells(letztezeile, 3) = "'" & Trim(Mid(strText, InStrRev(strText, "-") + 1)) 'Proj.-Name
      
      'Text aus 4. Absatz/Paragraph übernehmen
      Set wdRange = objDoc.Paragraphs(4).Range
      strText = wdRange.Text
      '"Adresse:" abschneiden
      strText = Trim(Mid(strText, Len("Adresse:") + 1))
      .Cells(letztezeile, 4) = "'" & Trim(Left(strText, InStr(strText, ", ") - 1)) 'Strasse
      'Strasse abtrennen
      strText = Trim(Mid(strText, InStr(strText, ", ") + 2))
      .Cells(letztezeile, 5) = "'" & Mid(strText, 1, InStr(strText, " ") - 1) 'PLZ
      .Cells(letztezeile, 6) = "'" & Mid(strText, InStr(strText, " ") + 1)  'Ort
      
    End With 'wks
    
    'Worddatei wieder schliessen
    objDoc.Close savechanges:=False
    strFileName = Dir
    
  Loop
  
  'Word-Anwendung beenden
  objWDApp.Quit

Beenden:
End Sub



  

Betrifft: AW: bestimmte Zeilen aus Word-Datei auslesen - Franz von: roman
Geschrieben am: 11.08.2014 13:00:12


Vielen Dank für die rasche antwort! wie kann ich dir nur dafür danken?
SPITZE!
ich werde es in den nächsten tagen ausprobieren.


 

Beiträge aus den Excel-Beispielen zum Thema "bestimmte Zeilen aus Word-Datei auslesen - Franz"