Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
820to824
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
820to824
820to824
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel Marko liest 'alte' Dateien aus Verzeichnis

Excel Marko liest 'alte' Dateien aus Verzeichnis
20.11.2006 08:53:39
Andreas
Hallo,
ich habe ein Excel-Makro unter 2003 geschrieben, das u.a. mit dem Standardbeispiel alle Dateien aus einem Verzeichnis auslesen soll:
With Application.FileSearch ' Alle Dateien suchen
.NewSearch
.LookIn = pfad
.Filename = "*.htm"
.Execute
For i = 1 To .FoundFiles.Count
file = .FoundFiles(i)
...
Ich habe nur das Problem, daß diese Routine einen Hinhalt des Vezeichnisses "pfad" ausliest, den es nicht mehr gibt... da sind Dateien umbenannt oder gelöscht worden; leider bekommt Excel das wohl nicht mit.
Nach dem Neustart des Rechners funktioniert alles wieder problemlos.
Kann es sein, daß Excel die Informationen des Verzeichnisses in einen Cache zwischenspeichert und bei Bedarf nur dessen Information ausliest, nicht aber erneut das Verzeichnis scannt? Zumindest habe ich das Gefühl.
Weiß einer eine Abhilfe? Gibt es diesen ominösen Cache und wie könnte man ihn reseten?
Danke!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Marko liest 'alte' Dateien aus Verzeichnis
20.11.2006 08:57:24
Andreas
Ergänzung:
Es kommt die Meldung
Laufzeitfehler '53'
Datei nicht gefunden
AW: Excel Marko liest 'alte' Dateien aus Verzeichnis
23.11.2006 12:07:07
Andreas
Hallo Heiko,
als ich die Infos in Deinem Verweis gelesen und versucht habe, das ganze zum Laufen zu bringen, mußte ich einsehen, daß ich noch viel lernen muß ;) Das läuft bei mir einfach nicht :(
Aber ich habe dann das hier gefunden: https://www.herber.de/forum/archiv/232to236/t233495.htm
und das hat geholfen!
Bei mir sieht das so aus:

Sub Ordner_auslesen()
Set fs = CreateObject("Scripting.FileSystemObject")
Set fol = fs.GetFolder(pfad)
For Each fil In fol.Files
If fil.Name Like "*.htm" Then
Open fil For Input As #1    ' Datei öffnen.
Do While Not EOF(1)    ' Schleife bis Dateiende.
Line Input #1, textzeile    ' Zeile in Variable einlesen.
[Was mit der Information aus "textzeile" passiert...]
Loop
Close (1)
End If
Next fil
End Sub

Läuft vor allem SEHR schnell... im Gegensatz zu .newsearch!
Ach ja, ne Lösung für Unterordner ist dort auch beschrieben...
Besten Dank Euch allen!
Gruß,
Andreas
Anzeige
AW: Excel Marko liest 'alte' Dateien aus Verzeichn
20.11.2006 10:15:31
fcs
Hallo Andreas,
einen solchen Cache im eigentlicehn Sinne gibt es nicht. Die mit der Methode FileSearch erstelle Dateiliste bleibt nach dem Aufruf jedoch solange unverändert, bis die Methode erneut aufgerufen wird.
Falls du in deinem weiteren Code einzelne Dateien löschst, dann bleiben sie in der Liste stehen.
Falls die Liste anschliessend mit einer Öffnen-Prozedur abgearbeitet wird kommt es zum Fehler.
Beende vor der Öffnen-Prozedur den With-Block einschließlich aller Schleifen und füge die Filesearch-Anweisung nochmals ein.
Alternativ könntest du mit
if Dir .Foundfiles(I) "" then
prüfen, ob die Datei vorhanden ist danach die Öffen-Prozedur einfügen
Gruss
Franz
 etwa nach folgendem Schema:
With Application.FileSearch ' Alle Dateien suchen
.NewSearch
.LookIn = pfad
.FileName = "*.htm"
.Execute
For i = 1 To .FoundFiles.Count
file = .FoundFiles(i)
Next
End With
'Reset der Dateiliste
With Application.FileSearch
.NewSearch
.LookIn = pfad
.FileName = "*.htm"
.Execute
For i = 1 To .FoundFiles.Count
file = .FoundFiles(i)
Next
End With

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige