Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
712to716
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
712to716
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Word doc öffnen, Kopfzeilen auslesen in Tabelle

Word doc öffnen, Kopfzeilen auslesen in Tabelle
04.01.2006 14:45:49
urs
Guten Mittag allerseits
Ich habe in einem Ordner viele Word Dateien die unter nichtssagende Dateinamen
zum Teil fortlaufende Nummern)abgespeichert sind.
Ich möchte alle Dateien des Ordners öffnen die benötigte Information auslesen und in einer Tabelle speichern.
In der 2. Kopfzeile die ich ganz auslesen will (kopieren ginge auch, ergibt dann 3 Spalten in Excel) und in der ersten Fusszeile die ersten 5 Buchstaben von rechts sollen in eine Zeile in Excel geschrieben werden.
Hat da schon einer etwas ähnliches gelöst?
Oder wie finde ich das in der Recherche?
Vielen Dank urs

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

Betreff
Datum
Anwender
Anzeige
AW: Word doc öffnen, Kopfzeilen auslesen in Tabelle
05.01.2006 10:17:18
Eugen
hi
folgenden code entweder hintzer den click eines buttons legen
oder in makro prozedur
Dim nRow As Integer ' welche zeile im target formular
Dim oWord As Object
Dim szHeader As String, szFooter As String
' action code
Application.ScreenUpdating = False
Set wBMaster = ActiveWorkbook
nRow = 1
szDatei = Dir(szDir + "*.DOC")
Set oWord = CreateObject("word.application")
If IsNull(oWord) Then Exit Sub ' vielleicht noch eine msgbox spendieren
Do While szDatei ""
oWord.documents.Open (szDir + szDatei)
szHeader = oWord.activedocument.sections(1).headers(2).Range.Text
szFooter = Right(oWord.activedocument.sections(1).footers(1).Range.Text, 5)
Sheets(1).Cells(nRow, 1).Value = szHeader
Sheets(1).Cells(nRow, 2).Value = szFooter
' wieder zumachen
oWord.activedocument.Close
szDatei = Dir
Loop
Application.ScreenUpdating = True
' hier sollte man no oWord freigeben
set oWord = nothing
mfg
Anzeige
Es funzt nicht !!
05.01.2006 12:37:28
urs
hallo Eugen , vielen Dank für Deine Unterstützung.
Ich habe den Code in eine Tabelle kopiert und diese Tabelle im gleichen Ordner wie die Worddateien abgespeichert. Ohne alles zu hinterfragen habe ich das Macro gestartet und es kam die Meldung das Visual Basic geschlossen wird. Es wurde keine doc Datei geöffnet.
Was habe ich vergessen oder übersehen?
Einen Auswahl des Ordners wie in untenstehendem Code, wäre dies auch möglich? Ich habe dies aus einer Excelabfrage kopiert und xls durch doc ersetzt.
strPfad = InputBox("Geben Sie bitte den auszulesenden Ordner ein", Default:="C:\1_Intern\Test\")
With Application.FileSearch
.LookIn = strPfad
.SearchSubFolders = False
.Filename = "*.doc"
.Execute
End With
Für weitere Hilfe wäre ich dankbar.
Gruss urs
Anzeige
Etwas funzt schon !!
05.01.2006 13:53:55
urs
Hallo Eugen,
Ich habe nun mein Wissen weiter in das Macro gepackt um zu Informationen zu kommen.
Mit folgendem Macro erhalte ich den gesammten Ausdruck der Kopfzeile und der Fusszeile.
Vermutlich ist der ganze Kopf resp. Fuss in Word ein String.
Wie muss ich vorgehen, wenn ich nur an der Information zwischen dem 4. und 5. Tabulator interessiert bin?
&ltpre&gt
Sub Word_Köpfe_auslesen()
Dim nRow As Integer ' welche Zeile im target formular
Dim oWord As Object
Dim szHeader As String, szFooter As String
'Application.ScreenUpdating = False
Set wBMaster = ActiveWorkbook ' Was bedeutet das?
nRow = 2
' szDatei = Dir(szDir + "*.DOC")
strPfad = InputBox("Geben Sie bitte den auszulesenden Ordner ein", Default:="C:\1_Intern\Test\")
With Application.FileSearch
.LookIn = strPfad
.SearchSubFolders = False
.Filename = "*.doc"
.Execute
End With
For i = 1 To Application.FileSearch.FoundFiles.Count
Application.StatusBar = "Die " & i & ". von insgesamt " & Application.FileSearch.FoundFiles.Count & " Mappen im Verzeichnis " & strPfad & " wird eingelesen"
On Error Resume Next
Set oWord = CreateObject("word.application")
If IsNull(oWord) Then Exit &ltpre&gt
Sub ' vielleicht noch eine msgbox spendieren
'Do While szDatei &lt&gt ""
oWord.documents.Open Application.FileSearch.FoundFiles(i)
szHeader = Right(oWord.activedocument.sections(1).headers(1).Range.Text, 200)
szFooter = Right(oWord.activedocument.sections(1).footers(1).Range.Text, 200)
ActiveWorkbook = "Wordköpfe.xls"
Sheets(1).Cells(nRow, 1).Value = szHeader
Sheets(1).Cells(nRow, 2).Value = szFooter
nRow = nRow + 1
oWord.activedocument.Close ' wieder zumachen
'szDatei = Dir
'Loop
Next
'Application.ScreenUpdating = True
' hier sollte man no oWord freigeben
Set oWord = Nothing
End Sub&lt/pre&gt
Gruss urs
Anzeige
Ich schliesse diesen Thread !
06.01.2006 12:53:53
urs
Hallo Eugen und VBA-ler
Da ich einen Teilerfolg hatte, schliessse ich diesen Thread und Stelle die Frage nun in einem neuen Thread etwas spezifischer.
Ganz herzlichen Dank für die Mitarbeit und ein frohes Wochenende
mfg urs

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige