Warum das nicht im Netzwerk funktioniert. Vielleicht weil VBA etwas älter ist und zu der Zeit noch nicht soviel Netzwerktheater bekannt war.
Netzwerk ist ein weiter Begriff. Da gibt es viele Ausprägungen. Du mußt da schon genauer werden.
Zu deinem Code:
Der Code läuft in einer Datei, von die dann als eine Datei ohne Code gespeichert wird. Sprich, der gerade ausgeführte Code wird entfernt während er ausgeführt wird. Das hört sich für dich doch auch komisch an, oder? Nicht umsonst werden Eingangs des Codes die Fehlermeldungen ausgeschaltet.
Nachdem die Datei neu gespeichert wurde, wird die Datei geöffnet, obwohl sie ja schon offen ist. Es ist schliesslich die selbe Datei nur mit anderem Namen. Quasi die "Speichern unter" Funktion von Excel. Da der Code aber im Arbeitspeicher unter der Referenz der xlsm Datei läuft, kann Excel die Datei nicht einfach löschen( wie bei der "Speichern unter"- Funktion. Deshalb wohl der Kill befehl.
Im Grunde funktioniert der Code, ist aber eher eine Krücke.
Sub SaveAsXLSX_AndDeleteOriginal()
Application.DisplayAlerts = False
ThisWorkbook.SaveAs FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Kill Replace(ThisWorkbook.FullName, "xlsx", "xlsm")
Application.DisplayAlerts = True
End Sub
|