Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateisuche nach Datentypen (mit Unterordner)

Frage Entwicklung VB for Applications

Mitglied: Gimli3311

Gimli3311 (Level 1) - Jetzt verbinden

27.02.2015 um 10:59 Uhr, 604 Aufrufe, 5 Kommentare

Hallo Zusammen,

Ich brauch eure Hilfe, und zwar soll ich eine Ordnerstruktur nach Daten durchsuchen die den Datentypen *.xls oder *.xlsx haben
Ich habe hier ein Sub noch von Jodel32 mit dem ich davor alle Daten rausbekommen haben die den Datennamen "*Logbuch*" und einen Datentyp *.xls oder *.xlsx haben.
Ich bekomme es einfach nicht hin den Code so zu ändern das es mir alle Dateien findet ohne das der Dateiname relevant ist.

Hier der Code:

01.
Option Compare Text 'benötigt für einen 'like' Vergleich 
02.
 
03.
Dim fso As Object 'Variable ganz am Anfang des Codefensters stehen lassen ! 
04.
 
05.
Sub SearchForAll() 
06.
'Variablen Deklarieren 
07.
Dim strFolderPath As String, strFileFilter As String, strEmpty 
08.
Dim objFoundFiles As Collection 
09.
 
10.
 
11.
'FilesystemObject erstellen 
12.
Set fso = CreateObject("Scripting.Filesystemobject") 
13.
 
14.
'Button erstellen 
15.
 
16.
'Ordner Verzeichnis auswählen 
17.
 strFolderPath = fncBrowseForFolder 
18.
 
19.
'Inputbox wird erstellt in der das Suchwort eingegeben werden soll 
20.
 'strFileFilter = InputBox("Dateinamensteileingeben :" & Chr(13) & "z.B. Eingabe_* (ohne Datei-Erweiterung, es werden nur *.xlsx,und *.xls Dateien gesucht)") 
21.
 
22.
'strEmpty Wert zuweisen 
23.
strEmpty = "" 
24.
 
25.
'Suche Dateien mit passenden Namen 
26.
    enumFiles fso.GetFolder(strFolderPath), strEmpty, objFoundFiles 
27.
     
28.
    If objFoundFiles.Count > 0 Then 
29.
    MsgBox "Es wurden " & objFoundFiles.Count & " gefunden!" 
30.
    End If 
31.
     
32.
 
33.
 
34.
'Neue Worksheet erstellen das "Output" heißt 
35.
'Worksheets.Add before:=Worksheets(1) 
36.
'ActiveSheet.Name = "Output" 
37.
 
38.
End Sub 
39.
 
40.
' Öffnet das Suchfeld für die Ordnerauswahl 
41.
 
42.
 
43.
Private Function fncBrowseForFolder(Optional ByVal defaultPath = "") As String 
44.
 
45.
  Dim objFlderItem As Object, objShell As Object, objFlder As Object 
46.
 
47.
 
48.
  Set objShell = CreateObject("Shell.Application") 'Vordefinierter Pfad einstellen zu Testzwecken (Standard--> DefaultPath) 
49.
  Set objFlder = objShell.BrowseForFolder(0&, "Ordner auswählen...", 0&, "I:\Projects-Global\ITIS\IT37639_Logbuch_Zusammenfuehrung\090_Infos_Intern\Gleiche_Logbuecher_Test") 
50.
 
51.
  If objFlder Is Nothing Then GoTo ErrExit 
52.
 
53.
  Set objFlderItem = objFlder.Self 
54.
  fncBrowseForFolder = objFlderItem.Path 
55.
 
56.
ErrExit: 
57.
  Set objShell = Nothing 
58.
  Set objFlder = Nothing 
59.
  Set objFlderItem = Nothing 
60.
 
61.
End Function 
62.
 
63.
'Funktion um Dateien rekursiv zu suchen 
64.
 
65.
Sub enumFiles(ByVal RootFolder As Object, ByVal strFilter As String, ByRef col As Collection) 
66.
 
67.
    On Error Resume Next 
68.
    For Each file In RootFolder.Files 
69.
        ext = LCase(fso.GetExtensionName(file.Name)) 
70.
        If fso.GetFileName(file.Name) Like strFilter Or (ext = "xlsx" Or ext = "xls") Then 
71.
            col.Add file.Path 
72.
        End If 
73.
    Next 
74.
    'Unterordner Suche falls vorhanden 
75.
    For Each subfolder In RootFolder.SubFolders 
76.
        enumFiles subfolder, strFilter, col 
77.
    Next 
78.
 
79.
End Sub
Danke für eure Hilfe

Gruß Sergej


Mitglied: 114757
27.02.2015 um 11:16 Uhr
01.
Sub enumFiles(ByVal RootFolder As Object, ByVal strFilter As String, ByRef col As Collection) 
02.
 
03.
    On Error Resume Next 
04.
    For Each file In RootFolder.Files 
05.
        If file.Name Like strFilter  Then 
06.
            col.Add file.Path 
07.
        End If 
08.
    Next 
09.
    'Unterordner Suche falls vorhanden 
10.
    For Each subfolder In RootFolder.SubFolders 
11.
        enumFiles subfolder, strFilter, col 
12.
    Next 
13.
 
14.
End Sub
Gruß jodel32
Bitte warten ..
Mitglied: Gimli3311
27.02.2015 um 11:19 Uhr
Danke Jodel32,

Hab da noch eine Frage zu deinem Code. Wo ist jetzt hier definiert das er nur nach Dateien sucht die den Dateityp "xls" oder "xlsx" haben?

Gruß Sergej
Bitte warten ..
Mitglied: 114757
LÖSUNG 27.02.2015, aktualisiert um 11:40 Uhr
Zitat von Gimli3311:
Hab da noch eine Frage zu deinem Code. Wo ist jetzt hier definiert das er nur nach Dateien sucht die den Dateityp "xls" oder "xlsx" haben?
Du wolltest doch alle Dateien egal welche Extension haben, oder ??

Den Filter mit einem Sternchen (*) versehen dann findet er hiermit nur alle xlsx und xls Files ...
01.
Sub enumFiles(ByVal RootFolder As Object, ByVal strFilter As String, ByRef col As Collection) 
02.
    On Error Resume Next 
03.
    For Each file In RootFolder.Files 
04.
        ext = LCase(fso.GetExtensionName(file.Name)) 
05.
        If file.Name Like strFilter AND (ext = "xlsx" OR ext = "xls") Then 
06.
            col.Add file.Path 
07.
        End If 
08.
    Next 
09.
    'Unterordner Suche falls vorhanden 
10.
    For Each subfolder In RootFolder.SubFolders 
11.
        enumFiles subfolder, strFilter, col 
12.
    Next 
13.
End Sub
Bitte warten ..
Mitglied: Gimli3311
27.02.2015 um 11:37 Uhr
Genau die aber die Endung xlsx oder xls haben der Dateiname ist egal. Habs aber hinbekommen :D trotzdem vielen Dank

01.
Sub enumFiles(ByVal RootFolder As Object, ByVal strFilter As String, ByRef col As Collection) 
02.
 
03.
    On Error Resume Next 
04.
    For Each file In RootFolder.Files 
05.
        'Schaut welche Dateityp file hat und speichert es in ext 
06.
        ext = LCase(fso.GetExtensionName(file.Name)) 
07.
        'Wenn ext = xlsx oder xls 
08.
        If ext = "xlsx" Or ext = "xls" Then 
09.
            'Füge der Collection den Pfad hinzu 
10.
            col.Add file.Path 
11.
        End If 
12.
    Next 
13.
    'Unterordner Suche falls vorhanden 
14.
    For Each subfolder In RootFolder.SubFolders 
15.
        enumFiles subfolder, strFilter, col 
16.
    Next 
17.
 
18.
End Sub
Bitte warten ..
Mitglied: Gimli3311
27.02.2015 um 11:42 Uhr
Zitat von 114757:

> Zitat von Gimli3311:
> Hab da noch eine Frage zu deinem Code. Wo ist jetzt hier definiert das er nur nach Dateien sucht die den Dateityp
"xls" oder "xlsx" haben?
Du wolltest doch alle Dateien egal welche Extension haben, oder ??

Den Filter mit einem Sternchen (*) versehen dann findet er hiermit nur alle xlsx und xls Files ...

Ganz genau war mein Denkfehler. Ich sollte die Inputbox noch wegmachen das man es nicht auswählen kann.

Gruß Sergej
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Recursiv Unterordner anlegen Powershell (2)

Frage von Voiper zum Thema Batch & Shell ...

Exchange Server
gelöst Vererbung von Berechtigungen auf Unterordner in Outlook verhindern (6)

Frage von touro411 zum Thema Exchange Server ...

SAN, NAS, DAS
DSM Synology Unterordner erstellen - Freigabe über Computermanagement (3)

Frage von freeskierchris zum Thema SAN, NAS, DAS ...

Windows Server
Kein Zugriff auf Netzwerk-Unterordner - trotz Berechtigung?! (4)

Frage von ordi303 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...