16.5k Aufrufe
Gefragt in Tabellenkalkulation von
hi

ich möchte gerne die kopie einer exceldatei speichern ohne, dass das von mir geöffnete und veränderte dokument gespeichert wird. also wie wenn ich eine datei öffne und anschließend auf datei speichern unter klicke, dann wird die veränderte datei als kopie gespeichert und die ursprünglich geöffnete datei bleibt unverändert.

gibt es da in vba eine lösung?


danke im voraus, lg chris

7 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Chris,

dazu benötigst Du nicht unbedingt VBA. Wenn Du mal bei "Speichern unter" bei "Extras => Allgemeine Optionen..." einen Haken bei "Sicherungsdatei erstellen" setzt, wird Dir bei jedem Speichern eine Sicherungsdatei mit dem Namen "Sicherungskopie von ...." und mit der Dateiendung ".xlk" im gleichen Pfad wie die Originaldatei erstellt. Diese kannst DU bei Bedarf ganz normal in Excel wieder öffnen.

Wenn es unbedingt mit VBA sein muss, dann wäre es die Eigenschaft "CreateBackup:=True" bei der Methode "ActiveWorkbook.SaveAs Filename:= ......". Aber diese Methode und Eigenschaft nur einmal verwenden. Danach reicht immer nur Speichern.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo Chris,
Code in ein Modul einfügen und Pfad ändern.

Gruß
fedjo


Sub Kopie()
Dim FName As String
FName = Left(ActiveWorkbook.Name, _
InStr(ActiveWorkbook.Name, ".")) & _
"(backup).xls"
ActiveWorkbook.SaveCopyAs Filename:="C:\Dokumente und Einstellungen\Admin\Desktop\Versand\" & FName

End Sub
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo fedjo,

Du hast vergessen zu schreiben, dass er dann die Datei schließen und dann wieder seine Originaldatei öffnen muss, da er ansonsten mit der Kopie der Datei weiterabreitet, was ich persönlich für schlecht halöte. Mit meiner Methode arbeitet er immer mit der Originaldatei und wenn er speichert, wird eine Kope davon angelegt.

Aber da von Chris keine Reaktion erfolgt, nehme ich an, dass es ihn onehin nicht mehr interessiert.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo coros,

Ich bin seit Stunden auf der Suche nach einer Lösung für , so denke ich dasselbe Problem.

Excelarbeitsblatt als html speichern ( um es stets aktuell auf dem desktop anzeigen zu lassen) und danach weiter am original in xls weiter zu arbeiten. Mit der Methode ActiveWorkbook.SaveAs springt er nach dem speichern jedesmal in die html-datei.Das geschieht auch wenn ich creatbackup als eigenschaft angebe.
meine idee wäre jetzt eine savecopyas methode, nur kann ich wiederrum dort nicht das dateiformat bestimmen.

Mag sein dass ich mich zu blöd anstelle.
Hat wer nen tip für mich ?

Vielen Dank im Vorraus

Werd weiter suchen und bei fündigwerden natürlich eine Antwort hinterlassen
0 Punkte
Beantwortet von
So,
hab jetzt die Umgehungstraße benutzt, und erst die originaldatei öffnen um danach die neue Datei per Workbook("dateiname").close wieder schliessen lassen.
Das is allerdings soviel code dass ich ne warteuhr im mauszeiger bekomme.
Also zwar eine funktionelle jedoch nicht wirklich aktzeptable Endlösung.

irgendwelche tips ?
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Trainjumper,

anstelle die Datei, in der Du arbeitest als html-Datei zu speichern würde ich die Daten des Tabellenblatts durch ein Makro in eine neue Datei kopieren lassen, diese Datei dann als html-Datei speichern und schließen lassen. Somit befindest Du Dich danach wieder in Deiner Exceldatei und kannst sofort weiterarbeiten und die html-Datei liegt dort wo Du diese benötigst.

Um Dir dazu ein Makro zu erstellen, müsste man wissen, welches Tabellenblatt in die html-Datei soll, welcher Bereich usw. Eventuell kannst Du ja auch z.B. bei http://www.file-upload.net/ eine Beispieldatei hochladen und den Link, den Du erhältst, hier dann posten, dann kann man sich das ansehen.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Danke für die schnelle Antwort!!

Mal abgesehen davon das es sowieso noch schönheitsfehler im zusammengebastelten makro gibt, seh ich gerade nicht wo deine lösung anders sein sollte, denn der rechner muss das ganze wegkopieren von dort aus speichern und dann diese datei schliessen. das ganze geschieht also in excel , ebenfalls drei schritte.was genau is anders in den auswirkungen auf den benutzer, quasi mich, der eine zelle in der arbeitsmappe ändert.
hier mal das beispielmakro wie ich es "zusammengebastelt"habe,als makro des tabellenblattes,soll jede änderung aktualisieren, so der sinn:

Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbook.Save
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="beliebiger speicherort1mit dateiname und endung.html", FileFormat:=xlHtml
Workbooks.Open Filename:="originaldatei als .xls"
Workbooks("test1.html").Close

End Sub


das ganze ist in excel 2000 geschrieben, falls das relevant sein sollte.

Vielen dank für antworten im vorraus
...