Folgendes: Ich habe hier ein paar Exceltabellen, die mittels Makro kopiert werden. Heute bemerke ich, daß Excel neu eingegebene und gespeicherte Daten ignoriert und sogar aktiv löscht.
Normalerweise funktioniert das so:
Exceldatei ändern, speichern und schließen: Excel-A.xlsm (V1.0) -> Excel-A.xlsm (V1.1)
Das Makro funktioniert schon einige Jahre so, und wurde auch nicht verändert. Das Vorgehen mit dem Kopieren war leider früher mal notwendig. Es sind Bauteile für Altium, Altium konnte damals noch keine Exceltabellen so verwenden daß man sie gleichzeitig auch in Excel offen haben konnte.
Heute funktioniert das so:
Exceldatei ändern, speichern und schließen(!): Excel-A.xlsm (V1.0) -> Excel-A.xlsm (V1.1)
Exceldateien öffnen, beide(!) Dateien sind auf dem veralteten Stand 1.0.
Es ist, als hätte Excel irgendwo noch eine Sicherheitskopie der alten Datei hermzuliegen und nimmt statt der Originaldatei diese her.
Hat irgendwer dasselbe beobachtet und weiß Abhilfe? Wie gesagt, das Makro ist relativ alt (das überschreibt nur die alte Datei und legt sie gleich neu an, es wird kein Inhalt verglichen oder so), und dieses komische Verhalten bemerke ich heute zum ersten Mal.
-Es könnte irgendwo noch eine Datei mit ~Tilde am Anfang liegen?
-Ansonsten würde ich mal die Optionen und Rechte gründlicher ansehen. -Allerdings hat sich zwischen den MS-Excel-Versionen manchmal etwas geändert.
-Eine nützliche Datei sollte man vor Experimenten sichern.
Ich hab ein ähnliches Problem.
Ich hab ein neues Icon für Altium gemacht und unter c:\Programme\Altium gespeichert. Im Icon Editor ist die Datei zusehen, er fragt auch soll ich überschreiben aber im Datei Explorer ist sie nicht da. Änderungen werden auch ignoriert.
Abhilfe gibt start "als Administrator" oder umweg über ein Temp Verzeichnis. Starte Excel mal als Administrator vielleicht ist das so ein Rechte-Ding.
Also eine Sicherungskopie liegt nicht irgendwo herum. Entfernt wird nur, was ich gerade geändert habe, sonst nichts.
Komischerweise bleiben die Änderungen, wenn ich die Datei ganz normal wieder in Excel öffne, aber wenn ich danach mein Kopiermakro drüberlaufen lasse, sind die Änderungen wieder weg. Und wie gesagt, das ist nichts experimentelles, das Makro hat seit Jahren, mindestens drei oder vier Jahre, ohne Probleme seinen Dienst verrichtet. Und da sind auch keine komplizierteren Dinge drin, daß da irgendwas am Inhalt geprüft oder geändert werden sollte.
Ich habe mir jetzt mal die Einstellungen angesehen, ist ja echt schlimm was unterm Reiter "Speichern" so alles steht. "Standardmäßig auf dem Computer speichern" ist aus...und Excel fragte heute ein oder zweimal, ob ich die Datei nicht gerne hochladen möchte, dann hätte ich eine Versionshistorie (danke, die liefert mir SVN schon seit Jahren).
Ich habe jetzt mal den ganzen Cache-Kram deaktiviert. Mal sehen ob das hilft.
-Allerdings hat sich zwischen den MS-Excel-Versionen manchmal etwas
geändert
manchmal ist witzig, innerhalb von 2 Office Pakete wurde mein Exel VBA Macro für einen ewigen Kalender (@work) ausser Betrieb genommen, ich frag mich nur wozu ein Interpreter für Macros nicht mehr kompatibel bleiben konnte!
So macht das keinen Spass Office Hilfsmittel zu benutzen.
hmm, habe mal gelesen heutige dateisysteme würden anstatt eine geänderte datei komplett neu hinzuschreiben, sich nur ein paar änderungen irgendwo notieren. also bei den ssd macht das wohl sinn.
was mir bei notepad++ mal übelst aufgestoßen ist, war daß speichern bedeutet speichern unter dem gleichen namen am gleichen ort anstelle der originaldatei, anstatt zu fragen wo, oder standardordner und wie zu benennen zum speichern. kannte ich von windows so nicht, dort wurde immer zum überschreiben gefragt, originaldatei überschreiben mag ich erstmal gar nicht. naja muß man auch erstmal wissen. meine standartaktion wäre "speichern unter" und dort auch gerne anstelle der originaldatei, eben mit nachfrage ob überschreiben ok wär.
es scheint als würde excel die originaldatei mit schreibschutz behandeln.
sind denn die änderungen unter einem anderen namen gespeichert beim öffnen in excel noch vorhanden ?
wie könnte denn das makro die änderungen an der datei verwerfen können ? wegen anderer dateizugriffsweise ? kommt mit dem dateisystem nicht klar ?
was mir bei notepad++ mal übelst aufgestoßen ist, war daß speichern
bedeutet speichern unter dem gleichen namen am gleichen ort anstelle der
originaldatei, anstatt zu fragen wo, oder standardordner und wie zu
benennen zum speichern. kannte ich von windows so nicht, dort wurde
immer zum überschreiben gefragt, originaldatei überschreiben mag ich
erstmal gar nicht. naja muß man auch erstmal wissen. meine
standartaktion wäre "speichern unter" und dort auch gerne anstelle der
originaldatei, eben mit nachfrage ob überschreiben ok wär.
Persönliche Anekdote ohne Bezug zum Thema also... Und "speichern" bedeutet natürlich "Originaldatei überschreiben", das ist Standard betriebssystemübergreifend. "Speichern unter" ist dir ja eh bekannt. Und "Sie haben speichern gedrückt - sind Sie sicher dass Sie speichern wollen? Ja/Nein/Abbrechen" ist zum Glück aus der Mode.
"path" ist ein String mit dem Pfad der Quelldatei, "targetPath" ist der Pfad mit dem Ordner, wo die Kopie gespeichert werden soll. Keine Gelegenheit, daß das Makro Mist baut.
Ich habe es gerade nochmal getestet, mit den o.g. Einstellungen, das scheint jetzt zu funktionieren. So richtig traue ich dem Braten aber trotzdem noch nicht. Es wird echt Zeit, daß ich von MS Office etwas wegkomme. Zumindest mit meinen Bauteilen.
was mir bei notepad++ mal übelst aufgestoßen ist, war daß speichern
bedeutet speichern unter dem gleichen namen am gleichen ort anstelle der
originaldatei,
das kann man doch aber einstellen, oder?
Außerdem müsste er ja ein back up angelegt haben.
Wie auch immer, Ich verwende solche Auto-Funktionen aus gutem Grund nicht.
Ach ja, Excel begrenzt die Zeilen und Spalten ja schon von sich aus. Ich
würde von Excel schon erwarten daß es mit seinem eigenen Limit klar
kommt.
Wie meinst du das? Richtig ist: es gibt Limits. Richtig ist auch: Eine Verletzung der Limits erkennt Excel und meldet sie zurück. Allerdings tut es das nur interaktiv (also per Fehler-Dialog), wenn die Verletzung bei interaktiver Nutzung auftritt.
Wenn alllerdings unwissende Macro-Frickler Excel per unverstandendem VBA benutzen, fehlt typisch jede Form einer sinnvollen Fehlerbehandlung. Denn dann gibt's nix auf der Anwender-Oberfläche und eben auch keine sinnvolle Fehlerbehandlung.
Möglich wäre sie aber: Wenn man wirklich programmieren könnte...
Wenn man lesen könnte, wäre oft schon weit mehr gewonnen. Ich schrieb ja, daß das Makro nicht in den Dateien herumschreibt. Das Makro macht genau das, was du machen würdest, wenn du die Datei öffnest, und mit "Speichern unter..." woanders abspeicherst. Als .xlsx anstatt als .xlsm.
Und ich schrieb auch, daß sich das erstmal erledigt zu haben scheint.