schwazza
Goto Top

Daten in Excel unter best. Bedingungen importieren

Hallo,

ich importiere zurzeit Formulardaten nach Excel aus allen Word-Dateien, die sich in einem bestimmten Ordner befinden.
Die Dateien suche ich folgendermaßen:

FS As New FileSearch
With FS
.FileName = "*.docx"  
.LookIn = "C:\Users\schwazza\Einlesen"  
.SearchSubFolders = True
.Execute
...

Nun ist es so, dass die Word-Dateien die Dokumenten-Eigenschaft "active" oder "archive" aufweisen können (Zusatzinfo: Die Dateien liegen auf einem SharePoint).
Ist es möglich, dass nur die Dateien eingelesen werden, die auf "aktiv" gesetzt sind?

Grüße
schwazza

Content-ID: 300634

Url: https://administrator.de/contentid/300634

Ausgedruckt am: 26.11.2024 um 06:11 Uhr

schwazza
schwazza 08.04.2016 um 18:56:48 Uhr
Goto Top
Ich habe einen neuen Ansatz:
Ich würde jetzt gerne nicht mehr alle .docx-Dateien einlesen, sondern nur Dateien, die (irgendwo) im Dateinamen "active" stehen haben.
Wie genau ist das möglich?

Gruß
schwazza
114757
Lösung 114757 08.04.2016, aktualisiert am 14.04.2016 um 10:25:35 Uhr
Goto Top
Zitat von @schwazza:
alle .docx-Dateien einlesen, sondern nur Dateien, die (irgendwo) im Dateinamen "active" stehen haben.
Wie genau ist das möglich?
z.B. so:
Const FOLDER = "C:\Users\schwazza\Einlesen"  
Const SEARCHWORD = "active"  
Const EXTENSION = "docx"  

Dim fso as Object, folder as Object, col as New Collection

Set fso = CreateObject("Scripting.FileSystemObject")   

' Suche starten  
SearchFiles fso.GetFolder(FOLDER),SEARCHWORD,EXTENSION


If col.Count > 0 Then
        ' Für jede gefundene Datei in der Collection  
	For Each f In col
		MsgBox "Datei gefunden: " &  f ,vbInformation  
	Next
Else
	MsgBox "Keine Dateien gefunden."  
End If

'Dateien rekursiv suchen  
Function SearchFiles(strFldr,strSearch,strExtension)
	For each file in strFldr.Files
		If InStr(1,file.Name,strSearch,1) > 0 and LCase(fso.GetExtensionname(file.Name)) = Lcase(strExtension) then
        	col.Add file.Path
    	End if
	Next
	
	For Each subFolder in strFldr.SubFolders
		SearchFiles subFolder, strSearch, strExtension
	Next
End Function
Gruß jodel32
schwazza
schwazza 14.04.2016 aktualisiert um 08:59:49 Uhr
Goto Top
Vielen Dank jodel32!

Ich habe es zeitlich leider erst jetzt wieder geschafft hier vorbeizuschauen.

Um den Code möglichst kurz zu halten, habe ich mir in der Zwischenzeit folgende Möglichkeit überlegt, um nach den Dateien zu suchen:

.FileName = "*active*.docx" 'nur Dateien, die im Namen *active* haben  

Dadurch sollte es doch auch möglich sein nur Dateien zu durchsuchen, die irgendwo im Namen "active" stehen haben. Oder übersehe ich da etwas? Die wesentlich längere Lösung von jodel32 verunsichert mich da gerade ein wenig, was bestimmt auch an meinen noch nicht sehr umfangreichen VBA Kenntnissen liegt.

Gruß
schwazza
114757
114757 14.04.2016 aktualisiert um 10:23:03 Uhr
Goto Top
Mein Code macht genau das was du willst und das auch rekursiv ...