ich fand hier Code zum Anhalten und habe den implentiert. Aber er funktioniert nicht.
Wenn ich in Folge nach "pad" "*pad*" "pad" "*pad*" ... suche so wird mir immer das Ergebnis der letzten Suche ausgegeben, obwohl in Suchen.bat die neue Suche drinsteht und der Inhalt von Suchen.txt auch aktuell ist.
DoEvent hat da rgendwie keinen Einfluß.
Anscheinend wird der Open-Befehl ausgeführt bevor Dos beendet hat *mutmaß*
Kann mir wer helfen das hinzukriegen? Danke
Sub Suchen()
Dim S, Datei As String, Zeile As String, Zei As Long, Start, Meldung As String
On Error GoTo Fehler
Range("A:C").ClearContents
Application.ScreenUpdating = False
Meldung = "Gesuchten Dateinamen oder Teile davon eingeben" & Chr(13)
Meldung = Meldung & "Stellervertreterzeichen ist das " & Chr(34) & "*" & Chr(34) & Chr(13)
Meldung = Meldung & "Bei Eingabe von " & Chr(34) & "pad" & Chr(34) & " wird nur die Datei namens " & Chr(34) & "pad" & Chr(34) & " gefunden." & Chr(13)
Meldung = Meldung & "Bei Eingabe von " & Chr(34) & "*pad" & Chr(34) & " wird z.B.: Pad, Autopad , Notpad usw. gefunden." & Chr(13)
Meldung = Meldung & "Bei Eingabe von " & Chr(34) & "pad*" & Chr(34) & " wird z.B.: pad, pad.exe, padanton.txt gefunden." & Chr(13)
Meldung = Meldung & "Bei Eingabe von " & Chr(34) & "*pad*" & Chr(34) & " wird dann z.B. gefunden pad, notepad.exe Bootspaddel.txt usw."
Datei = InputBox(Meldung)
If Datei = "" Then Exit Sub
[A1] = "Start"
[A2] = "Ende"
[A3] = "Diff"
Start = Timer
[b1] = Timer
If Dir("c:\test2/nul") = "" Then MkDir "c:\test2"
Close
Open "c:\test2\Suchen.bat" For Output As #1
Print #1, "echo %1"
Print #1, "dir c:\" & Datei & " /s/b/-p > c:\test2\Suchen.txt"
Close #1
S = Shell("c:\test2\Suchen.bat " & Datei)
Do While IsActive
DoEvents
Sleep 250
Loop
Open "c:\test2\Suchen.txt" For Input As #1
'MsgBox LOF(1)
While Not EOF(1)
Zei = Zei + 1
Line Input #1, Zeile
Cells(Zei, 3) = Zeile
Wend
Close
[b2] = Timer
[B3] = [b2] - [b1]
'MsgBox Timer - Start & "Sekunden"
Fehler:
Application.ScreenUpdating = True
End Sub
Gruß
Reinhard