Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Speichern als per UserForm / Letztes Blatt nicht drucken
#71
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.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#72
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...
Antworten Top
#73
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.


Angehängte Dateien
.xlsm   test6.xlsm (Größe: 14,05 KB / Downloads: 0)
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#74
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.
Antworten Top
#75
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.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#76
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste