Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1272to1276
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
Inhaltsverzeichnis

ordner suchen mit teilweise bekannte namen

ordner suchen mit teilweise bekannte namen
Rolandx
Hallo Zusammen,
stosse mal wieder an meine Grenzen und benoetige dringend Hilfe.
Ich suche bestimmte Dateien auf einem Server. Allerdings ist die Suche in den vorhandenen Ordnern nicht ganz so einfach, da es sich um Ordner mit Unterordnern handelt und ich in manchen Ordnern nur nach Teilstrings des Ordnernamens suchen kann (ist leider etwas schlecht zu erklaeren da ich keine Firmeninternen Informationen nach aussen geben darf und somit das ganze nur umschreiben kann).
Der Pfad des Servers ist mir bekannt. Diesen habe ich als "SearchFolder" deklariert.
Der Name des ersten Ordners ist mir ebenfalls bekannt und wird aus einer Exceldatei ausgelesen und als "FAT" deklariert.
Somit kann ich zumindestpruefen mit folgendem Code pruefen ob der gesuchte Ordner vorhanden ist und dann nach dem benoetigten Unterordner suchen
If CBool(Len(Dir(SearchFolder & "\" & FAT, vbDirectory)) > 0) = True Then
SearchFolder = SearchFolder & FAT
end if
Aber jetzt kommt mein Problem. Vom Unterordner sind mir nur 2 Teilstrings bekannt nach denen ich im Ordnernamen suchen kann. Die beiden Teilstrings habe ich mit "CEID_1" und "CEID_2" deklariert.
Ich muss also alle Unterordner durchsuchen ob in dessen Bezeichnung der Teilstring "CEID_1" und "CEID_2" vorkommt und wenn ja in diesem Unterordner nach einer bestimmten Datei suchen die ich dan oeffnen und bestimmte Werte auslesen muss.
Gibt es so etwas wie die DIR() funktion mit der ich nach Ordnern suchen kann ?
Dann koennte ich die Ordnerbezeichnungen einzeln auswerten indem ich das so mache
FoundFolder = Dir(SearchFolder & "\" & "*.xls")
Do While FoundFolder <> ""
FoundFolder = Dir()
If FoundFolder = "" Then
Exit Do
ElseIf InStr(FoundFolder, CEID_1) and InStr(FoundFolder, CEID_2) Then
bestimmte Datei oeffnen und bearbeiten
Exit do
End If
Loop
Waere wirklich super wenn mir hierzu jemand helfen koennte. Muss die Anwendung umgehend fertig bekommen weil mein Chef mir schon im Nacken sitzt.
Vielen Dank fuer Eure schnelle Hilfe.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: ordner suchen mit teilweise bekannte namen
07.08.2012 11:01:12
Rudi
Hallo,
sowas?
Sub File_Suchen()
Dim FSO As Object, oFolder As Object
Dim strFolder As String, FAT As String
Dim SearchFolder As String
FAT = Sheets(1).Range("A1")
Const CEID_1 As String = "ide"
Const CEID_2 As String = "yxc"
Const strFile As String = "Test.xls"    '****anpassen****
SearchFolder = "\\Server1\Freigabe1\"   '****anpassen****
Application.ScreenUpdating = False
If Right(SearchFolder, 1)  "\" Then SearchFolder = SearchFolder & "\"
strFolder = SearchFolder & FAT
Set FSO = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set oFolder = FSO.GetFolder(strFolder)
On Error GoTo 0
If oFolder Is Nothing Then
MsgBox strFolder & " nicht vorhanden!", , "Fehler"
Else
prcSubFolders oFolder, Array(CEID_1, CEID_2), strFile
End If
End Sub
Private Sub prcSubFolders(oFolder, arrFolders, strFile)
Dim oSubFolder As Object, i As Integer
For i = 0 To 1
If InStr(1, oFolder.Name, arrFolders(i), vbTextCompare) > 0 Then
If Dir(oFolder.Path & "\" & strFile)  "" Then
prcOpenFile oFolder.Path & "\" & strFile
End If
End If
Next
For Each oSubFolder In oFolder.SubFolders
prcSubFolders oSubFolder, arrFolders, strFile
Next
End Sub
Private Sub prcOpenFile(ByVal strFile As String)
Dim wkb As Workbook
Set wkb = Workbooks.Open(strFile)
'mach was
wkb.Close False
End Sub

Gruß
Rudi
Anzeige
AW: ordner suchen mit teilweise bekannte namen
07.08.2012 11:03:55
Rolandx
Habe eine Loesung gefunden. Habe zwar seit gestern mehrere Stunden gegoogelt und so ganz verstehe ich das zwar nicht weil mir die Kenntnisse fehlen aber es funktioniert. Hier mal der Code falls es jemanden interressiert:
Sub Directory_Tree(SearchForElectricalCalculator)
Dim FSO As Object
Dim MainFolder As Object
Dim Folder As Object
Dim FolderName As String
Dim SUBFOLDER As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set MainFolder = FSO.GetFolder(SearchForElectricalCalculator)
Set SUBFOLDER = MainFolder.SubFolders
For Each Folder In SUBFOLDER
FolderName = Folder.Name
If InStr(FolderName, CEID_1) > 0 And InStr(FolderName, CEID_2) > 0 Then
FoundFolder = Folder.Name
Exit For
End If
Next
Set SUBFOLDER = Nothing
Set MainFolder = Nothing
Set FSO = Nothing
End Sub
das rufe ich dann einfach in meinem anderen macro wie folgt auf:
Directory_Tree SearchFolder ' Macro to search for the CEID-Folder
Falls schon jamand an der Loesung gearbeitet hat .... sorry fuer den unnoetigen Zeitaufwand und vielen Dank.
Anzeige

28 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige