Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

quälend langsame Dateioperationen seit Win 11

Forumthread: quälend langsame Dateioperationen seit Win 11

quälend langsame Dateioperationen seit Win 11
18.11.2025 13:10:52
Martin D.
Ich verschiebe mit VBA Dateien aus dem persönlichen Download-Ordner in einen Zielordner, der sich in einem Netzlaufwerk befindet. Dazu wird folgender Code benutzt:


Sub csv_Verschieben(Zielordner, Dateianfang)

Dim FSO As Object
Dim FI As Object
Dim Monat As String
Dim Quellordner As String
Dim Filename As String

'Ermittlung Username
With CreateObject("WScript.Network")
Profil = .UserName
End With

Quellordner = "C:\Users\" & Profil & "\Downloads\"

Set FSO = CreateObject("Scripting.Filesystemobject")
If Not FSO.FolderExists(Quellordner) Then
MsgBox "csv-Quellordner (persönlicher Download-Ordner) " & Quellordner & " ist nicht vorhanden."
Set FSO = Nothing
Exit Sub
End If


For Each FI In FSO.GetFolder(Quellordner).Files
If UCase(FSO.GetExtensionName(FI)) = UCase("csv") Then
If (UCase(FSO.GetFileName(FI)) Like UCase(Dateianfang & "_Gesamt_" & "*")) Or _
(UCase(FSO.GetFileName(FI)) Like UCase(Dateianfang & "*" & "nderungen_" & "*")) Or _
(UCase(FSO.GetFileName(FI)) Like UCase(Dateianfang & "_Umsatz_" & "*")) Then
FSO.MoveFile FI, Zielordner
End If
End If
Next


Set FSO = Nothing
End Sub


Das klappte unter Windows 10 problemlos. Seit der Umstellung auf Windows 11 (aktuell läuft Version 10.0.26100 Build 26100) ist die Ausführung quälend langsam und manchmal hängt sich Excel komplett auf. Das träge Verhalten habe ich aber auch, wenn ich im Dateiexplorer Dateien verschiebe oder in Excel einfach nur den Speicher-Button drücke. Jedes mal legt das System mehrere Gedenksekunden ein, ehe etwas passiert. Dass hier schlafende Server-Festplatten erst aufwachen müssen, möchte ich ausschließen.
Macht es Sinn, ein DoEvents vor dem Next einzubauen?
Wenn ich es richtig sehe, wird jede der 3 Dateien, auf die die Auswahlbedingungen zutrifft, einzeln verschoben. Wie könnte ein Code aussehen, der alle 3 Dateien auf einmal verschiebt?
Gibt es irgendeinen Trick, die Dateioperationen zu beschleunigen?
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: quälend langsame Dateioperationen seit Win 11
18.11.2025 13:17:49
Klaus_ww
Hi Martin,

sind denn alle Netzlaufwerke auch erreichbar?
Wenn nicht, kann das die Gedenksekunden/-minuten erklären. Wenn ich - auch unter Win11 - den Explorer öffne und die gemappten Netzlaufwerke sind nicht da, warte ich gefühlt ewig bis ich dann was machen kann. Eine für mich praktikable Lösung habe ich keine gefunden.

Nur so ein Gedanke.
Anzeige
AW: quälend langsame Dateioperationen seit Win 11
18.11.2025 17:08:45
schauan
Hallöchen,

das kann durchaus an der Hardware, dem System oder den Sicherheitsmechanismen z.B. von Windows / Defender/ Virenscanner ... liegen.
Ich habe mir kürzlich 2 SSD nebst USB 3.2 Gehäusen zugelegt - das ist nun zwar die neueste, aber auch die langsamste Technik in meinem System :-(
Durchschnittliche Transferrate um die 30 MB/s Auf meinen älteren HD liege ich ca. bei >60

Mein Netz ist zuweilen beim Seitenaufbau auch recht langsam. Das war aber schon vorher so - mein Sohn meinte, wir hätten da jemand mit "Vorrangschaltug" in der Leitung :-(

1)
Was ich empfehlen würde - Du arbeitest ja hier mit fso usw - schreibe doch gleich ein VBS-Script und starte das direkt oder per VBA ...

2)
die Dateien werden einzeln verschoben, egal, wie Du Dich anstellst. Bei Dir wird durch die Schleife auch jede Verschiebeaktion einzeln angestoßen. Wenn Deine Filter auf 283 Dateien zutreffen, werden 283 Aktionen angestoßen.
Alternativ könntest Du
--> die Wildcards im MoveFile verwenden
--> per Shell direkt oder durch Aufruf eines batchscript mit Wildcars moven
--> per powershell (AUfruf eines ps-Scriptes) mit Wildcars moven
--> per XCOPY moven

--> mit dem VBA-Befehl NAme moven





Anzeige
AW: robocopy Beispiel
19.11.2025 14:05:47
schauan
... nicht xcopy, sondern robocopy wollte ich schreiben :-(

Dafür gibt's gleich noch ein Codeschnipsel zum probieren. Aber aufpassen - robocopy überschreibt ungefragt ....
Hinweis: Bei R und W kannst Du Wiederholungen und Wartezeiten dazwischen programmieren.

    Quellordner = "C:\Users\" & Profil & "\Downloads\"


If Dir(Quellordner, vbDirectory) > "." Then
MsgBox "csv-Quellordner (persönlicher Download-Ordner) " & Quellordner & " ist nicht vorhanden."
Else
strPattern = Dateianfang & "_Gesamt_*.csv " & Dateianfang & "*" & "nderungen_*.csv " & Dateianfang & "_Umsatz_*.csv"
strCommand = "ROBOCOPY """ & Quellordner & """ """ & Zielordner & """ " & strPattern & " /MOV /R:0 /W:0"
errCode = Shell("cmd.exe /c " & strCommand, vbHide)
If errCode >= 8 Then
MsgBox "Fehler beim verschieben." & vbLf & "Fehler: " & exitCode, vbExclamation
Else
MsgBox "Verschieben erfolgreich!", vbInformation
End If
End If



Wenn Du genau auf das Ende vom Verschieben warten willst, wäre das angebracht:

    Set objWsh = CreateObject("WScript.Shell")

errCode = objWsh.Run(strCommand, 0, True)


Das löst aber alles wohl nicht Dein Geschwindigkeitsproblem :-(
Anzeige
AW: quälend langsame Dateioperationen seit Win 11
18.11.2025 21:20:02
Oppawinni
Kann es sein, dass du vielleicht ein Anti-Viren-Programm am Laufen hast, das bei solchen Aktionen herum spinnt.
Was sagt der Taskmanager ?
AW: quälend langsame Dateioperationen seit Win 11
19.11.2025 09:45:28
Ulf
Hi,
nachsehen würde ich
a) Berechtigungen und Besitz der Ordner/Dateien übernehmen, ggf alte Win10Accounts, die es nicht mehr geben kann löschen
b) SMB deaktivieren, wenn der Server/NAS nur ältere Versionen unterstützt
Move ist suboptimal, besser Collection erstellen und in einem 1 Kopieren, dann 2 Quellen löschen
hth
Ulf
Anzeige
AW: quälend langsame Dateioperationen seit Win 11
19.11.2025 10:29:04
schauan
Moin Ulf,

b1)
wenn ich mich recht entsinne, macht move genau das - erst Kopieren, dann Löschen. Vorteil: Move löscht wirklich erst, wenn das File komplett am Ziel angelangt ist.
b2)
wie kopierst Du denn eine Collection "in einem Rutsch"? Move, Copy, Delete kann zwar, wie ich schon schrieb, mit Wildcards umgehen, aber nicht mit Collections.

Anzeige
AW: quälend langsame Dateioperationen seit Win 11
19.11.2025 11:25:56
Ulf
Hi,
wenn sich Dateioperationen zwischen Datenträgern überlagern, wird zumindest auf der Quelle gleichzeitig gelesen und geschrieben, bei größeren Dateien sicher kein Problem, bei kleinen und SSD oder NVME schon.
fso sammelt in einem Schritt die Dateien in Collection, da kann man auch mehrere Suchläufe haben, danach Kopieren dann Löschen.
Kann jeder machen wie er will, bin aber auf evtl Leistungsergebnisse gespannt, ich zumindest habe keinen Move-Bedarf (mehr)

Anzeige
AW: quälend langsame Dateioperationen seit Win 11
19.11.2025 13:44:23
schauan
... also, die Collection ist das: FSO.GetFolder(Quellordner).Files ...
Da sind aber zum einen alle drin und nicht nur die gewünschten, zum anderen müsstest Du ggf. den Ordner kopieren, wenn Du alle willst ...

Du kannst aber, wie ich schon schrieb, die gewünschten Files per Wildcard moven, ganz ohne diese Collection.

Im Prinzip so, da kann man auch auf Exit Sub verzichten ;-)

    Quellordner = "C:\Users\" & Profil & "\Downloads\"


Set FSO = CreateObject("Scripting.Filesystemobject")
If Not FSO.FolderExists(Quellordner) Then
MsgBox "csv-Quellordner (persönlicher Download-Ordner) " & Quellordner & " ist nicht vorhanden."
Set FSO = Nothing
Else
FSO.MoveFile Quellordner & Dateianfang & "_Gesamt_*.csv", Zielordner
FSO.MoveFile Quellordner & Dateianfang & "*" & "nderungen_*.csv", Zielordner
FSO.MoveFile Quellordner & Dateianfang & "_Umsatz_*.csv", Zielordner
End If


Wobei man trotzdem schauen muss - MoveFile überschreibt keine vorhandenen Dateien, da kommt ein Fehler ...
--> Also, eventuell vorher löschen. Ggf. wären wir dann wieder bei einer Einzeldateiverarbeitung
Löschen geht eventuell nicht, wenn jemand eine vorhandene Zieldatei in Zugriff hat
--> also, ggf. auch prüfen, oder generell, eine Fehlerbehandlung einbauen. Ggf. wären wir dann wieder bei einer Einzeldateiverarbeitung

Übrigens wird im Code vom TE nicht geprüft, ob der Zielordner vorhanden ist :-(

Anzeige
AW: quälend langsame Dateioperationen seit Win 11
19.11.2025 18:47:34
Martin D.
Danke für die vielen Hinweise und Ideen. Ich habe nochmal weiter getestet. Also das Verschieben über VBA dauert doch signifikant länger als wenn ich es im Dateiexplorer mache. Das Verschieben einer einzelnen Datei per VBA dauert etwa 6 Sekunden, bei 3 Dateien sind es rund 18 Sekunden. Dabei spielte es keine Rolle, ob wie in meinem Code jede Datei einzeln oder mittels Wildcards alle 3 Dateien auf einmal verschoben werden. Auch eine Variante mit einem Array, das alle 3 Dateien enthielt, habe ich probiert - dauert dann ebenfalls 18 Sekunden. Auch ohne FSO über "Name oldfile as newfile" dauert jede Datei 6 Sekunden.
Robocopy wollte ich probieren, aber der Aufruf eines shell cmd führt hier zu einer Viruswarnung und Makroabbruch. Solange ich mit meinen Dateioperationen auf der eigenen Festplatte (C:\) bleibe, läuft mein Code performant. Es muss wohl an Sicherheitsmechanismen im Netzwerk liegen, die im Hintergrund ablaufen. Darauf habe ich aber keinen Einfluss. Wenn ich in Excel die Speichern-Schaltfläche drücke oder ThisWorkbook.Save ausführe, dauert es rund 15 Sekunden, bis die Speichern-Anzeige mit dem Fortschrittsbalken fertig ist und verschwindet. Die Datei ist unter 1 MB groß!

Anzeige
AW: quälend langsame Dateioperationen seit Win 11
19.11.2025 19:10:26
schauan
... Robocopy

--> probiere mal, ob Du das überhaupt ausführen darfst - also ein cmd öffnen und dort eingeben
wenn das klappt,
--> die Alternative zum Aufruf von Robocopy - also das mit dem wsh - kannst Du auch probieren ;-)
AW: quälend langsame Dateioperationen seit Win 11
18.11.2025 13:51:02
Martin D.
Die Netzlaufwerke sind da. Alle Ordner werden beim Anklicken auch sofort angezeigt.
Anzeige
AW: quälend langsame Dateioperationen seit Win 11
18.11.2025 16:34:21
Onur
Du schreibst doch selbst : "Das träge Verhalten habe ich aber auch, wenn ich im Dateiexplorer Dateien verschiebe" -
Offen sichtlich ein Windows oder Netzwerkproblem.
AW: quälend langsame Dateioperationen seit Win 11
18.11.2025 18:42:40
Marc
Es kann tausende Gründe haben, kann aber muss nicht mit VBA oder so zu tun haben..

Da kann ein Update im Hintergrund laufen , dass kann belegte Netzwerkresscourcen sein, es kann sein das bestimmte Startroutinen im Weg sind, Das Antivirenlaufwerk kann ein Problem sein, größe der Dateien, Laufwerkzustand des Ziellaufwerks, Defragmentierung, Wie viele greifen gleichzeitig auf das Netzwerlauf zu,

da kann man jetzt rumraten ganz wild.. aber grundsätzlich glaub ich nicht das es was mit dem VBA Code zu tun hat...
Anzeige
AW: quälend langsame Dateioperationen seit Win 11
18.11.2025 19:27:46
Onur
Kann eigentlich fast alles sein - nur nicht Excel.

Forumthreads zu verwandten Themen

Anzeige
Anzeige