Clever-Excel-Forum

Normale Version: Speichern als per UserForm / Letztes Blatt nicht drucken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8
Hi,
(12.09.2022, 06:15)BuschB schrieb: [ -> ]aber solange Excel noch geöffnet ist (was bei einem ungestörten Ablauf des Codes welcher das SaveAs mit sich führt unumgänglich ist) dann ist auch noch eine Instanz der Datei mit dem alten Namen im Hintergrund geöffnet
Und woher hast du diese Weisheit? Das kann ich nicht nachvollziehen. Bei einem kurzen Test konnte ich nach einem SaveAs keine weitere Instanz der Datei unter dem alten Namen finden.
Ja, findest du auch nicht, aber hast du mal versucht die alte Datei erneut zu öffnen nach dem SaveAs, ohne Excel zwischendurch zu schließen?
Bei mir kommt dann immer der Fehler "Konnte nicht geöffnet werden, da die Datei bereits mit einem anderen Programm geöffnet ist" während mir beim Kill-Befehl in VBA der Fehler "Zugriff verweigert" kommt.

Ja man sieht die noch "offene" Instanz der alten Datei nicht, aber sie existiert, irgendwo weit im Hintergrund...
Hi,

dann frage ich mich, wieso diese Routine bei mir problemlos funktioniert (in Tabelle1!A1 steht eine ganze Zahl, siehe auch Anhang): 
PHP-Code:
Sub t()
Dim s As String
ThisWorkbook.Name
With Tabelle1
.Cells(11)
    .Value = .Value 1
    ThisWorkbook
.SaveAs "test" & .Value
    Workbooks
.Open s
End With
End Sub 

Nach der Ausführung dieses Codes sind sowohl die alte wie auch die neue Datei geöffnet - ohne Fehlermeldung! In der Alten steht in A1 noch die alte Zahl (vor Ausführung des Makros) und in der Neuen ist sie um 1 erhöht. Also alles so wie es sein soll.
Interessant, öffnen geht über Code, aber Löschen nicht...
merkwürdig aber ok, wäre einen Versuch wert, das wbk erst nochmal zu öffnen, dann zu schließen und dann zu löschen, vllt klappt es dann... aber nicht heute, zu viel Stress gerade.
Hi,

auch Löschen der Datei funktioniert:
PHP-Code:
Sub t()
Dim s As String
ThisWorkbook.Name
With Tabelle1
.Cells(11)
    .
Value = .Value 1
    ThisWorkbook
.SaveAs "test" & .Value
    
'Workbooks.Open s   '
    
Kill s
End With
End Sub 
Was natürlich nicht funktioniert ist Workbooks.SaveCopyAs xxx denn dann ist die ursprüngliche Datei ja noch offen und dafür die Kopie geschlossen. Da fällt Kill s dann auf die Schnauze.
Hab eine Lösung für mich gefunden... Speichern, öffnen, schließen, löschen... etwas umständlich aber funktioniert^^

Ab jetzt ist das Ding endgültig fertig, vielen vielen Dank an alle für eure Hilfe und eure Geduld^^

18 18 18
Seiten: 1 2 3 4 5 6 7 8