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

stFile = Dir() in Schleife und darin Datei = Dir()

stFile = Dir() in Schleife und darin Datei = Dir()
15.09.2003 16:04:38
Veit
Hallo an alle,
ich brauche mal wieder Eure Hilfe. Da habe ich mir aus dem Forum aus diversen Bausteinen ein Stück Code zusammen gestrickt. Das soll folgendes machen:
in einem Ordner sollen alle Ordner untersucht werden ob Ihr Namen länger 6 Zeichen ist. Bei Zutreffen If Len(quelle) > 6 Then sollen alle Dateien dieses Ordners in den Ordner verschoben werden der den 2 Zeichen kürzeren Namen hat.
Fragt mich bitte nicht was das soll. Das ist nun mal passiert.
Aber irgendwie fällt er mit dem ineinandergeschachtelten Dir() auf die Schn...
Ich habe allerdings keine Ahnung, was ich falsch mache.
Habt Ihr einen Tip für mich
Danke
Ein Veit


Sub OrdnerListe()
Dim Directory$, stFile$, Msg$, dName$, Pfad$
Dim R%, C%
Dim rtn As Double
Directory = "F:\rgp-safe\"
stFile = Dir(Directory, vbDirectory)
C = 0
Do While stFile <> ""
If stFile = "." Or stFile = ".." Then
ElseIf (GetAttr(Directory & stFile) And vbDirectory) = vbDirectory Then
Ziel = Left(stFile, 6)
quelle = stFile
If Len(quelle) > 6 Then
'jetzt noch alle Dateien aus der Quelle ins Ziel rüberkopieren
Datei = Dir(Directory & quelle & "\*.TIF")
Do While Datei <> ""
rtn = CopyFile(Directory & quelle & "\" & Datei, Directory & Ziel & "\" & Datei, False)
Datei = Dir()
Loop
End If
End If
stFile = Dir()
Loop
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: stFile = Dir() in Schleife und darin Datei = Dir()
15.09.2003 17:28:01
ChrisL
Hi Veit

Auf die Schn... fallen ist als Fehlerbeschreibung nicht besonders gut geeigenet ;-)

Führe die Routine mal im Einzelschritt Modus. Ich vermute, dass er von...

Do While stFile <> ""

... direkt nach Loop springt.

Liege ich richtig?

Gruss
Chris
AW: stFile = Dir() in Schleife und darin Datei = Dir()
15.09.2003 18:52:19
Veit
Nein leider nicht. Allerdings hast Du recht...die Fehlerbeschreibung war alles andere als exakt. Der Einzelschrittmodus hatte auch keine anderen Ergebnisse zutage gefördert. Was ich halt rausbekommen habe war, dass die Zeile
Datei = Dir(Directory & quelle & "\*.TIF")
nicht mit dem stFile=Dir() zusammen konnte. Warum? Keine Ahnung.
Ich schiebe es ja auf diesen doppelten Dir-Befehl.

Ich danke Dir auf alle Fälle für Deine Bereitschaft
Gruß
Ein Veit

Gelöst habe ich es jetzt folgendermaßen:

Declare

Function CopyFile& Lib "kernel32" Alias "CopyFileA" _
(ByVal Kopierdatei As String, ByVal Neuedatei As String, _
ByVal DateischonDa As Long)

Sub OrdnerListe()
Dim Directory$, stFile$, Msg$, dName$, Pfad$
Dim R%, C%
Dim rtn As Double
Directory = "F:\rgp\"
stFile = Dir(Directory, vbDirectory)
C = 0
Do While stFile <> ""
If stFile = "." Or stFile = ".." Then
ElseIf (GetAttr(Directory & stFile) And vbDirectory) = vbDirectory Then
Ziel = Left(stFile, 6)
quelle = stFile
If Len(quelle) > 6 Then
With Application.FileSearch
.LookIn = Directory & stFile & "\"
.Execute
test = .FoundFiles.Count
For n = 1 To test
test2 = .FoundFiles.Item(n)
rtn = CopyFile(.FoundFiles.Item(n), Directory & Ziel & "\" & Right(.FoundFiles.Item(n), 12), False)
Kill .FoundFiles.Item(n)
Next n
End With
RmDir Directory & quelle
End If
End If
stFile = Dir()
Loop
End Sub

Anzeige
AW: stFile = Dir() in Schleife und darin Datei = Dir()
15.09.2003 20:26:11
ChrisL
Hi Veit

Ich muss das Morgen mal testen. Ich glaube es liegt daran, dass du diese Art von Suche, d.h. mit dem Dateityp und Dir nur lokal durchführen kannst, nicht aber auf Serververzeichnissen (ist doch auf Server und nicht PC-Harddrive?). Jedenfalls hatte ich so was ähnliches auch schon, bin mir aber nicht mehr sicher ob es tatsächlich das war. Gelöst hatte ich es mit einer Alternative, die ging mit FileSearch... sowas in der Art:
https://www.herber.de/forum/archiv/192to196/t193009.htm

Also ich meld mich morgen nochmals.

Gruss
Chris
Anzeige
AW: stFile = Dir() in Schleife und darin Datei = Dir()
16.09.2003 10:26:42
Veit
Stimmt ist ein Serverlaufwerk. Aber die äußere Schleife läuft ja auch wunderbar. Eigentlich läuft alles super solange man
' Datei = Dir(Directory & quelle & "\*.TIF")
auskommentiert läuft eigentlich alles super (macht eben nichts weil dann Datei = "")
Dabei ist es auch egal ob dort *.tif oder *.* steht, er will es einfach mal nicht.
Mittlerweile habe ich das ja wie Du oben gelesen hast schon anders gelöst, aber mich würde schon Interessieren....WARUM??
Also bis dann

Ein Veit
AW: stFile = Dir() in Schleife und darin Datei = Dir()
17.09.2003 13:47:44
ChrisL
Hi Veit

Sorry dass ich mich nicht schon vorher gemeldet habe. Habe nun ein bischen getestet, und meine ursprüngliche Vermutung mit Server etc. war definitiv Quatsch. Allerdings das "Warum" kann ich dir trotzdem nicht liefern, tut mir leid.

Gruss
Chris

"A computer program does what you tell it to do, not what you want it to do."
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige