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

Datei auf allen Partitionen suchen

Datei auf allen Partitionen suchen
08.08.2003 11:24:48
ThomasJ
Hallo Forum,
ich bräuchte einen Tip, wie ich nach einer Datei auf allen Partitionen (keine Ahnung wie viele) suchen kann. Die Datei ist klar definiert, die Suche auch. Es geht nur noch um LookIn:?????
Hier noch mal kurz der Code:

Private Sub überntip_Click()
Dim i As Byte
Dim name As String
With Application.FileSearch
.LookIn =
.SearchSubFolders = True
.FileName = "FTG v1.1.xls"
.MatchTextExactly = True
.Execute
For i = 1 To .FoundFiles.Count
name = .FoundFiles(i)
Next i
End With
Workbooks.Open name
End Sub

Danke im voraus für eure Hilfe und ein schönes WE
Thomas

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei auf allen Partitionen suchen
08.08.2003 12:00:48
Koenig W.
Hallo Thomas,
ich würde es so versuchen:

Sub Laufwerk()
Dim ar As Variant
Dim lw As String
Dim i As Integer
On Error Resume Next
ar = Array("C", "D", "Y", "W")
For i = 0 To 3
lw = ar(i)
Debug.Print lw
Next i
End Sub

wobei ich in den Array alle möglichen Laufwerke definieren würde, also etwa von C bis Z
und dann das i anpassen an die Argumentenanzahl des Arrays (fängt bei 0 an und nicht bei 1).
Du musst nur noch überprüfen, ob die Fehlerbehandlung greift, bei Zugriff auf ein nicht vorhandenes Laufwerk.
Gruss Wilhelm

Anzeige
AW: Datei auf allen Partitionen suchen
08.08.2003 12:06:32
Ramses
Hallo,
so ganz funktioniert dein Code aber noch nicht. Was bezweckst du denn mit der i-Schleife ?
Auch wenn du schon einen tipp bekommen hast, das soll jetzt nicht umsonst sein :-)

Option Explicit
Private Sub überntip_Click()
Dim myDriveArr() 'As Variant
Dim i As Byte, n As Byte
Dim Sname As String, FName As String
myDriveArr = Array("C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
Sname = "FTG v1.1.xls"
Debug.Print UBound(myDriveArr)
For n = 0 To UBound(myDriveArr())
    With Application.FileSearch
        .LookIn = myDriveArr(i)
        .SearchSubFolders = True
        .Filename = Sname
        .MatchTextExactly = True
        .Execute
        For i = 1 To .FoundFiles.Count
            FName = .FoundFiles(i)
            If FName = Sname Then
                Workbooks.Open FName
                Exit Sub
            End If
        Next i
    End With
Next n
MsgBox "Datei wurde nicht gefunden"
End Sub 
     Code eingefügt mit Syntaxhighlighter 1.16


Allerdings solltest du deinen Benutzer auf eine längere EXCEL-Auszeit hinweisen.
Wenn du eine Datei auf allen Partionen suchen willst, kann das verdammt lange dauern.
Schon für eine halbgefüllte 10GB-partition C benötigt das Makro knapp 4 Minuten.
Gruss Rainer

Anzeige
bzgl. array und suchdauer - probleme!
08.08.2003 12:21:27
ThomasJ
Hallo Wilhelm und Ramses,
erstmal vielen Dank für die Hilfe.
Das mit ARRAY hab ich auch schon überlegt, aber so versucht er auch auf alle möglichen CD/DVD-Lw zuzugreifen und wenn dann tatsächlich noch irgendwo ne Daten-DVD steckt, wird es ätzend!
Gibt es nicht eine Möglichkeit, vorher schon die Anzahl der Partitionen herauszufinden???
Ich habe bei mir an der Arbeit eben ein 270GB Netz-Lw nach der Datei durchsucht (vorher natürlich dort irgendwo platziert), und es ging eigentlich ziemlich fix. So ca. 20 sec., aber wer hat schon eine 270GB-Platte zu hause und außerdem ist grad Mittag und alle anderen auch im INet ;-)
Thomas

Anzeige
AW: bzgl. array und suchdauer - probleme!
08.08.2003 12:28:39
Ramses
Hallo,
ob das ätzend ist oder nicht steht nicht zur Diskussion.
Dein Frage lautete "Alle Partitionen"
Auf einer 270 GB kann die Datei auch nicht in 20 Sekunden gefunden werden. Glaube ich eigentlich nicht wirklich.
Schreib in den Array halt nur die Partitionen die du durchsuchen willst.
Wenn du CD und DVD Drives, temporäre HD's, USB Drives, Netzlaufwerke und all den anderen Schrott ausschliessen willst, geht das nur über sehr aufwändige API Programmierung, und das wiederum sprengt den Rahmen dieses Forums.
Gruss Rainer

AW: bzgl. array und suchdauer - probleme!
08.08.2003 13:44:03
Michael Schirow
Hi Ramses,
Kleine Ergänzung: Falls WSH installiert ist, kann man sich dadrüber die Laufwerke liefern lassen

Sub laufwerke()
Dim fso As IWshRuntimeLibrary.FileSystemObject
Dim d As IWshRuntimeLibrary.Drive
Set fso = New IWshRuntimeLibrary.FileSystemObject
Debug.Print "Anzahl lokale Laufwerke: " & fso.Drives.Count
For Each d In fso.Drives
Debug.Print "Laufwerk: " & d.DriveType
Debug.Print "Laufwerk: " & d.DriveLetter
Next
End Sub

MfG, Michael

Anzeige
AW: bzgl. array und suchdauer - probleme!
08.08.2003 15:39:27
Ramses
Hallo Michael,
ist ne interessante Alternative,... :-)) geht aber auch ohne WSH ;-))

Sub Show_all_Drives()
'(c) ramses
Dim myFSO As Object, myDrv As Object, drvCount, drvStr As String, vName As String, drvTyp As String
Set myFSO = CreateObject("Scripting.FileSystemObject")
Set drvCount = myFSO.Drives
On Error Resume Next
drvStr = ""
For Each myDrv In drvCount
        Debug.Print myDrv.DriveLetter
        Select Case myDrv.DriveType
            Case 0: drvTyp = "Unknown"
            Case 1: drvTyp = "Removable"
            Case 2: drvTyp = "Fixed"
            Case 3: drvTyp = "Network"
            Case 4: drvTyp = "CD-ROM"
            Case 5: drvTyp = "RAM Disk"
        End Select
        drvStr = drvStr & drvTyp & ": " & myDrv.DriveLetter & " - "
        If myDrv.DriveType = 3 Then
            vName = myDrv.ShareName
        Else
            vName = myDrv.VolumeName
        End If
        drvStr = drvStr & vName & vbCrLf
    Next
    MsgBox drvStr
End Sub 
     Code eingefügt mit Syntaxhighlighter 1.16


Gruss Rainer

Anzeige
AW: bzgl. array und suchdauer - probleme!
08.08.2003 12:44:07
ThomasJ
Hallo Ramses,
Ich werde mich wahrscheinlich nur auf die Suche in den LW c bis g beziehen, und eine Funktion zur manuellen Eingabe des Lw einfügen.
Was bewirkt "debug.print" ???
Gruß
Thomas

AW: bzgl. array und suchdauer - probleme!
08.08.2003 12:51:59
Ramses
Hallo,
Debug.print gibt das was danach eingetragen wird im Direktfenster im VB-Editor aus.
Das ist eigentlich mehr ein Tool zum Testen bei der Entwicklung.
Im Code braucht es das nicht.
Für weitere Fragen,... könntest du bitte auf die jeweiligen Beiträge antworten und nicht auf deine eigenen ? Sonst funktioniert die Benachrichtigung nämlich nicht und ich suche nicht ständig ob sich wieder mal jemand gemeldet hat.
Das ist mir in letzter zeit, wegen schlechtem Feedbacks, zu aufwändig geworden :-)
Gruss Rainer

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige