Datei in einem unbest. Verzeich. suchen und öffnen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox


Excel-Version: 5.0/7.0
nach unten

Betrifft: Datei in einem unbest. Verzeich. suchen und öffnen
von: Pat Beach
Geschrieben am: 13.05.2002 - 14:21:14

Hallo zusammen
Ich möchte eine Excel Datei in einem bestimmten Laufwerk, aber unbestimmten Verzeichnis suchen und öffnen.

Ich habe bereits verschiedene Makro-Codes ausprobiert, aber da ich noch in der Anfangsphase stecke, habe ich's nicht geschaft.

WER KANN MIR HELFEN?

Besten Dank.
Pat Beach


nach oben   nach unten

Re: Datei in einem unbest. Verzeich. suchen und öffnen
von: Andreas
Geschrieben am: 13.05.2002 - 14:27:41

Hallo Pat,

hier findest Du etwas:
https://www.herber.de/mailing/111400h.htm

Viel Spaß,
Andreas

nach oben   nach unten

Re: Datei in einem unbest. Verzeich. suchen und öffnen
von: Pat Beach
Geschrieben am: 13.05.2002 - 14:51:12

Danke Andreas
Ich Versuch's mal.

nach oben   nach unten

Re: Datei in einem unbest. Verzeich. suchen und öffnen
von: Pat Beach
Geschrieben am: 13.05.2002 - 15:05:38

Hallo Andreas

Mein Versuch ist fehlgeschlagen (ist mir zu hoch).
-> Gibt es eine Möglichkeit mit der "Application.GetOpenFilename"-Methode?

Besten Dank für Euren Einsatz.

Pat


nach oben   nach unten

Re: Datei in einem unbest. Verzeich. suchen und öffnen
von: Pat Beach
Geschrieben am: 13.05.2002 - 15:05:55

Hallo Andreas

Mein Versuch ist fehlgeschlagen (ist mir zu hoch).
-> Gibt es eine Möglichkeit mit der "Application.GetOpenFilename"-Methode?

Besten Dank für Euren Einsatz.

Pat


nach oben   nach unten

Re: Datei in einem unbest. Verzeich. suchen und öffnen
von: Andreas
Geschrieben am: 13.05.2002 - 15:17:44

Hallo Pat,

hab hier noch mal den Code etwas angepasst.
Also LW ist das Laufwerk auf dem gesucht werden soll und strDatei der Dateiname!
Die erste gefundene Datei wird sofort geöffnet!

Sub Start()
Const LW = "C:"
Dim strDatei$

strDatei = "Test.xls"
GetFilesInDirectory LW, strDatei
LookForDirectories LW, strDatei
End Sub
  
 Private Sub LookForDirectories(ByVal DirToSearch As String, _
    FileToSearch As String)
   Dim counter As Integer
   Dim As Integer
   Dim Directories() As String
   Dim Contents As String
   counter = 0
   DirToSearch = DirToSearch & "\"
   Contents = Dir(DirToSearch, vbDirectory)
   On Error Resume Next
   Do While Contents <> ""
     If Contents <> "." And Contents <> ".." Then
       If (GetAttr(DirToSearch & Contents) And vbDirectory) = _
          vbDirectory Then
         counter% = counter% + 1
         ReDim Preserve Directories(counter)
         Directories(counter) = DirToSearch & Contents
       End If
     End If
     Contents = Dir()
   Loop
   If counter = 0 Then Exit Sub
   For i = 1 To counter
     GetFilesInDirectory Directories(i), FileToSearch
     Application.StatusBar = "Durchsuche Ordner " & _
       Directories(i) & "..."
     LookForDirectories Directories(i), FileToSearch
   Next i
 End Sub
  
 Private Sub GetFilesInDirectory(ByVal DirToSearch As String, _
    FileToSearch As String)
   Dim NextFile As String
   On Error Resume Next
   NextFile = Dir(DirToSearch & "\" & "*.*")
   Do Until NextFile = ""
     If NextFile = FileToSearch Then
       'MsgBox DirToSearch & "\" & NextFile
       Workbooks.Open DirToSearch & "\" & NextFile
       Exit Sub
     End If
     NextFile = Dir()
   Loop
 End Sub

Mit GetOpenFileName muss allerdings händisch gesucht werden!
Sonst frag nochmal nach!
Viel Spaß,
Andreas

nach oben   nach unten

Re: Datei in einem unbest. Verzeich. suchen und öffnen
von: Pat Beach
Geschrieben am: 13.05.2002 - 15:28:57

Hallo Andreas
Tausend Dank. Ich Versuch's.
Pat

nach oben   nach unten

Re: Datei in einem unbest. Verzeich. suchen und öffnen
von: Pat Beach
Geschrieben am: 13.05.2002 - 16:40:01

Hallo Andreas

Kannst Du mir noch die folgenden Fragen beantworten?

1. Gem. der folgenden Ordnerstruktur möchte ich nur in den "lt"-Orndern suchen, muss aber von dem Verzeichnis "t:\s01\dok" ausgehen.
Ordnerstruktur: z.B. t:\s01\dok\010102\lt
t:\s01\dok\010102\ab
t:\s01\dok\010202\lt
t:\s01\dok\010202\ab

2. Den Dateinamen möchte ich von einer bestimmten Zelle übernehmen?

3. Kann ich vor dem automatischen Öffnen kontrollieren, ob wirklich nur eine Datei mit dem gleichen Namen vorhanden ist. Wenn i.O. mit "OK" Datei öffnen!

Danke für Deinen Einsatz.

Pat

nach oben   nach unten

Re: Datei in einem unbest. Verzeich. suchen und öffnen
von: Andreas
Geschrieben am: 14.05.2002 - 10:35:24

Hallo Pat,

das ist alles machbar:

Option Explicit
Dim intCount%, arrFiles() As String

Sub Start()
Const LW = "T:\S01\DOK"
Dim strDatei$, strAusgabe$, i%

intCount = 0: strAusgabe = ""
strDatei = Worksheets("Tabelle1").Range("A1").Value 'Dateiname

GetFilesInDirectory LW, strDatei
LookForDirectories LW, strDatei
Application.StatusBar = False
Select Case intCount
    Case 0: MsgBox strDatei & " konnte nicht gefunden werden!"
    Case 1: Workbooks.Open arrFiles(0)
    Case 2:
        For i = 1 To intCount
            strAusgabe = strAusgabe & arrFiles(i - 1) & vbCr
        Next i
        MsgBox strAusgabe, , Str(intCount) & " Dateien gefunden"
End Select
End Sub
  
 Private Sub LookForDirectories(ByVal DirToSearch As String, _
    FileToSearch As String)
   Dim counter As Integer
   Dim As Integer
   Dim Directories() As String
   Dim Contents As String
   counter = 0
   DirToSearch = DirToSearch & "\"
   Contents = Dir(DirToSearch, vbDirectory)
   On Error Resume Next
   Do While Contents <> ""
     If Contents <> "." And Contents <> ".." Then
       If (GetAttr(DirToSearch & Contents) And vbDirectory) = _
          vbDirectory Then
         counter% = counter% + 1
         ReDim Preserve Directories(counter)
         Directories(counter) = DirToSearch & Contents
       End If
     End If
     Contents = Dir()
   Loop
   If counter = 0 Then Exit Sub
   For i = 1 To counter
     GetFilesInDirectory Directories(i), FileToSearch
     Application.StatusBar = "Durchsuche Ordner " & _
       Directories(i) & "..."
       LookForDirectories Directories(i), FileToSearch
   Next i
 End Sub
  
 Private Sub GetFilesInDirectory(ByVal DirToSearch As String, _
    FileToSearch As String)
   Dim NextFile As String
   On Error Resume Next
   If InStr(DirToSearch, "\lt") = 0 Then Exit Sub
   NextFile = Dir(DirToSearch & "\" & "*.*")
   Do Until NextFile = ""
     If NextFile = FileToSearch Then
       intCount = intCount + 1
       ReDim Preserve arrFiles(intCount)
       arrFiles(intCount - 1) = DirToSearch & "\" & NextFile
     End If
     NextFile = Dir()
   Loop
 End Sub

Dateiname wird hier aus Tabellenblatt "Tabelle1" Zelle A1 eingelesen. Das musst Du noch anpassen!
Wird genau 1 Datei gefunden, dann wird diese geöffnet. Werden mindestens 2 Dateien gefunden, erfolgt eine Ausgabe aller gefundenen Dateien. Geöffnet wird dann keine!
Gesucht wird in dem Verzeichnis "T:\S01\DOK" (+Unterverzeichnisse) und dort nur in Verzeichnissen die "\lt" enthalten!

Viel Spaß,
Andreas

nach oben   nach unten

Re: Datei in einem unbest. Verzeich. suchen und öffnen
von: Pat Beach
Geschrieben am: 14.05.2002 - 11:52:09

Vielen Dank Andreas

Ich werde es am Nachmittag testen.

Gruss

Pat


nach oben   nach unten

Re: Datei in einem unbest. Verzeich. suchen und öffnen
von: Pat Beach
Geschrieben am: 14.05.2002 - 14:56:49

Hallo Andreas

Es hat leider nicht funktioniert. Aber ich habe folgendes Makro gefunden, dessen Suchfunktion funkioniert aber nur den Pfad anzeigt:

Sub Suchen()
Dim objFileSearch As FileSearch
Dim strVerzeichnis As String, strDatei As String
strVerzeichnis = InputBox("Verzeichnis:", , "t:\s01\dok\")
If strVerzeichnis = "" Then Exit Sub
strDatei = InputBox("Dateiname:", , "test.xls")
If strDatei = "" Then Exit Sub
Set objFileSearch = Application.FileSearch
With objFileSearch
.LookIn = strVerzeichnis
.SearchSubFolders = True
.FileName = strDatei
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
MsgBox .FoundFiles(1)
Else
MsgBox "Datei wurde nicht gefunden!"
End If
End With
End Sub

Wie kann ich es anpassen, damit bei einer gefundenen Datei, die Datei öffnet und bei mehreren Dateien mich frägt, welche ich öffnen will?

Kennst Du ein Buch oder eine Internetadresse wo ich von Grund auf VBA lernen könnte, ohne extra eine Schule (keine Zeit -> 2 Kinder) zu besuchen.

Besten Dank für Deine Antwort.

Gruss
Pat Beach

nach oben   nach unten

Re: Datei in einem unbest. Verzeich. suchen und öffnen
von: Andreas
Geschrieben am: 17.05.2002 - 09:34:17

Hallo Pat,

was heißt genau "funktioniert nicht"?
Welche Fehlermeldung tritt auf, an welcher Stelle?
Bei meinen Test hat es funktioniert...
Allerdings sind mehr als 2 Dateien gefunden worden, so werden diese nur angezeigt. Es stellt aber auch kein Problem da, den User dann auswählen zu lassen.

Melde Dich nochmal...
Andreas


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Datei in einem unbest. Verzeich. suchen und öffnen"