VBA6: ActiveWorkbook.Save ändert Dateinamen :-(

Hallo Gemeinde,

ich öffne meine Excel-Vorlage und ändere mit

Sub auto\_open()

einen Wert und dann soll die Vorlage wieder abgespeichert werden, damit der Wert beim nächsten Öffnen aktuell ist.

Bisher (unter Office 2003) ging das ohne Probleme mittels

ActiveWorkbook.Save

Jetzt (unter Office 7) benennt VBA die Datei immer um (schreibt ne 1 ans Ende). Ich habs auch schonmal mit

ActiveWorkbook.Save FileFormat:=xlTemplate

versucht. Hilft aber auch nix.
Was ist da los und bzw. wie kann ichs ändern? Scheint als habe bisher nur ich das Problem :wink:

LG Uschi

Grüezi Uschi

ich öffne meine Excel-Vorlage

Wie genau tust Du das - manuell oder per VBA?

und ändere mit

Sub
auto_open()

einen Wert und dann soll die Vorlage wieder
abgespeichert werden, damit der Wert beim nächsten Öffnen
aktuell ist.

Bisher (unter Office 2003) ging das ohne Probleme mittels

ActiveWorkbook.Save

Ja, wenn die .XLT zur Bearbeitung geöffnet wurde und nicht etwa eine Datei basierend auf dieser Vorlage erstellt worden ist.

Jetzt (unter Office 7) benennt VBA die Datei immer um
(schreibt ne 1 ans Ende).

Das ist das Standard-Verhalten wenn eine Datei basierend auf der Vorlage erstellt wurde.

Ist es noch eine ‚alte‘ .XLT oder hast Du die Vorlage ins xl2007-Format( .XLTX) überführt?

Was ist da los und bzw. wie kann ichs ändern? Scheint als habe
bisher nur ich das Problem :wink:

…na, schauen wir mal… :smile:

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Uschi,

benutze nicht Save, sondern SaveAs.
In der Hilfe werden die parameter von SaveAs erläutert.

Gruß
Reinhard

Hallo Reinhard,

hab es ja schon mit SaveAS versucht… Mein Problem ist aber, dass ich den Dateinamen nicht fest vorgeben will, da der sich ja auch mal ändern kann…

Solag ich den Namen nicht fest vorgebe, tritt der Fehler immer auf… Hab ja die Hilfe schon bemüht.

MFG uschi

Halli Hallo Thomas,

Wie genau tust Du das - manuell oder per VBA?

Mit VBA. Ist auch nix aufregendes. Nur

 Range("h20").Value = Range("h20").Value + 1

Ja, wenn die .XLT zur Bearbeitung geöffnet wurde und nicht
etwa eine Datei basierend auf dieser Vorlage erstellt worden
ist.

Das ist das Standard-Verhalten wenn eine Datei basierend auf
der Vorlage erstellt wurde.

Ja, ist eigentlich auch logisch. Nur komisch dass es bisher ging. War wohl ein Office-Bug :smiley:
Dann werde ich mal versuchen den Bearbeitungsmodus beim Öffnen einzuschalten und nach dem Bearbeiten, beim Speichervorgang wieder einzuschalten… Mal sehen wie weit ich komme :wink:

Ist es noch eine ‚alte‘ .XLT oder hast Du die Vorlage ins
xl2007-Format( .XLTX) überführt?

Es ist noch eine alte Vorlage. Soll bzw. muss es aber auch bleiben, da das Dokument auch mit Excel 2003 ausgeführt wird…

MFG Uschi

Grüezi Uschi (täusch ich mich oder kennen wir uns noch sonstwo her?)

Wie genau tust Du das - manuell oder per VBA?

Mit VBA. Ist auch nix aufregendes. Nur

Range(„h20“).Value = Range(„h20“).Value + 1

Ja, wenn die .XLT zur Bearbeitung geöffnet wurde und nicht
etwa eine Datei basierend auf dieser Vorlage erstellt worden
ist.

Das ist das Standard-Verhalten wenn eine Datei basierend auf
der Vorlage erstellt wurde.

Ja, ist eigentlich auch logisch. Nur komisch dass es bisher
ging. War wohl ein Office-Bug :smiley:

Vermutlich schon - ich kanns zwar nicht so ganz nachvollziehen…

Dann werde ich mal versuchen den Bearbeitungsmodus beim Öffnen
einzuschalten und nach dem Bearbeiten, beim Speichervorgang
wieder einzuschalten… Mal sehen wie weit ich komme :wink:

Hmmm, auch da kann ich mir nicht vorstellen, dass das was bringen wird.

Ist es noch eine ‚alte‘ .XLT oder hast Du die Vorlage ins
xl2007-Format( .XLTX) überführt?

Es ist noch eine alte Vorlage. Soll bzw. muss es aber auch
bleiben, da das Dokument auch mit Excel 2003 ausgeführt wird…

…dann bearbeite es doch weiterhin mit xl2003…

Ev. müssten wir noch näher wissen wie das Ganze aufgbaut und abgewickelt wird.
Normalerweise gehen solche Dinge ‚nur‘ z.b. über eine .ini-Datei oder das explizite öffnen der Vorlage und erhöhen des Wertes.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -