Excel-Datei kann nicht gespeichert werden.

Dieses Thema im Forum "Office Software" wurde erstellt von SlamJam, 01.09.2006.

  1. SlamJam

    SlamJam Thread Starter MacUser Mitglied

    Beiträge:
    10
    Zustimmungen:
    0
    MacUser seit:
    01.09.2006
    Hallo zusammen

    Das Problem ist komplexer als der Titel es beschreiben konnte.

    Ich habe ein grösseres VBA-Projekt programmiert, bei welchem User Daten in sehr komplexe Excel-Dateien eingeben. Die User arbeiten teilweise auf PC und teilweise auf Mac. Die Daten werden in einer zentralen Administration gesammelt und automatisch in eine MS-Access DB eingelesen.

    Nun kommt es vor, dass einzelne Excel-Dateien von Mac-Useren korrupt bei der zentralen Administration ankommen, oder das einzelne User die Excel-Datei in Mac-Excel nicht mehr öffnen oder nicht mehr speichern können.

    Nun habe ich mittlerweile herausgefunden, dass diese Probleme verschwinden, wenn ich die enthaltenen VBA-Module entferne. Nur geht dadurch natürlich auch ein Teil der Funktionalität verloren, ein Teil davon ist relevant für die Datenintegrität.

    Ich habe leider im Netz nach längeren Recherchen noch keinen befriedigenden Ansatz gefunden. Die Frage ist, weshalb und unter welchen Umständen der VBA-Code diese Probleme verursacht, wo die Inkompatibilitäten liegen und wie man sie umgehen kann. Derzeit ist mir kein Muster aufgefallen, dass das Phänomen nachvollziehbar macht, es scheint recht spontan aufzutreten. Bei MS-Office von PC tritt dieses Problem nicht auf. Getestet habe ich die Datei derzeit bei Mac OS X und Mac-Office 2004.

    Vielleicht hat ja jemand von Euch eine Idee, welchen Weg ich weiter verfolgen könnte.

    Besten Dank.

    SlamJam
     
  2. peterg

    peterg MacUser Mitglied

    Beiträge:
    2.752
    Zustimmungen:
    184
    MacUser seit:
    02.03.2005
    Hallo,

    ganz einfach: es gibt kein VBA unter Office:mac. Während reine Makros zwischen beiden Systemen ganz gut funktionieren, ist bei VBA-Scripten aus der Win-Welt anders.

    Wenn ich mir die Beschreibung Deines Projektes so ansehe bin ich mir nicht ganz sicher, ob nicht ein anderes Verfahren (z.B. Java mit Anbindung an eine Datenbank, z.B. Access oder PHP mit MySQL als Webanwendung) der geeignetere Weg wäre.

    Gruß
    Peter
     
  3. SlamJam

    SlamJam Thread Starter MacUser Mitglied

    Beiträge:
    10
    Zustimmungen:
    0
    MacUser seit:
    01.09.2006
    Hallo Peterg

    Aber weshalb funktionieren denn die VBA-Module bei anderen Mac-Office Usern? In der Testphase hatte sich diese Problem nicht gezeigt, die Makros haben funktionert wie sie sollten, ich hatte dies jeweils mit Mac getestet und musste die Makros teilweise auch vereinfachen, damit sie bei allen Systemem liefen.

    Zu den anderen Wegen: Natürlich gibt es diese, und über mehr oder weniger geeignet liesse sich natürlich diskutieren. Aber das Projekt ist schon längst in der scharfen Phase, für eine Umkrempelung sind keine Gelder vorhanden. Ich muss das Problem also mit den bestehenden Voraussetzungen lösen.
     
  4. peterg

    peterg MacUser Mitglied

    Beiträge:
    2.752
    Zustimmungen:
    184
    MacUser seit:
    02.03.2005
    Hallo,

    ok - wenn sie grundsätzlich auf einem Mac laufen, nur manchmal nicht, stellt sich die Frage, was bei denen, wo es nicht funktioniert, jeweils anders ist.

    Eine häufge Fehlerquelle in meinem Alltag sind unterschiedliche Versionsstände (Releases, Patches), unterschiedliche Konfigurationen und unterschiedliche Installationen (vor allem die sog. Add-Ins). Letzteres kommt immer wieder vor, weil Excel bestimmte Add-Ins (wie Solver oder Analyse-Funktionen) standardmäßig nicht installiert - die muss man per Hand nachinstallieren und aktivieren(!).

    Peter
     
  5. SlamJam

    SlamJam Thread Starter MacUser Mitglied

    Beiträge:
    10
    Zustimmungen:
    0
    MacUser seit:
    01.09.2006
    Dazu kommt aber noch, dass es ja nicht prinizipell bei diesen Useren nicht läuft, sondern unverhofft auftritt, nachdem es schon eine Weile gelaufen ist.

    Anfangen tut es jeweils damit, dass die eingesandten Files bei der zentralen Administration nicht mehr automatisiert eingelesen werden können, da Excel 2003 die Dateien als korrupt meldet.

    Der Clou dabei ist, dass, wenn man diese Dateien dann in Open-Office öffnet und neu als Excel abspeichert, diese danach auch wieder in Excel normal geöffnet werden können ..... :rolleyes:
     
  6. peterg

    peterg MacUser Mitglied

    Beiträge:
    2.752
    Zustimmungen:
    184
    MacUser seit:
    02.03.2005
    Hallo,

    wo liegt denn nun der Fehler? Können Anwender die Excel-Dateien teilweise nicht mehr bearbeiten, weil das Makro mit einer kryptischen Fehlermeldung abbricht oder gar nicht mehr startet? Oder können die von Mac-Anwendern gesendeten (per Mail?) Dateien unter Windows nicht geöffnet werden?

    Beim Mailversand könnte man z.B. prüfen, ob die MIME-Konvertierung passt. Welches Programm, welche Einstellung? Bei Mail unter Mac OS X gibt tes den zusätzliche Möglichkeit, Dateien Windows-kompatibel zu versenden... Das muss man dann zusätzlich ankreuzen

    Peter
     
  7. Jabba

    Jabba MacUser Mitglied

    Beiträge:
    4.465
    Zustimmungen:
    109
    MacUser seit:
    21.11.2003
    Hae?
    Es gibt massig Inkompatibilitäten, klar. Aber wenns kein VBA für Office:Mac gäbe, würden die Programme gar nicht laufen. Es geht hier um Excel.

    Dass VBA korrupte Dateien produziert ist mir schleierhaft.
    Zum Verständnis:
    Schreiben die User jeder in eine eigene Datei für sich selbst rein oder ist es eine Datei die mehrfach geöffnet wird?

    Wird durch das VBA Script eine Eingabemaske dargestellt die permanent aktiv ist?
    Oder ist es ein ereignisgesteuertes Script was automatisch z.B. nach einer Eingabe gewisse Abläufe ausführt?

    Dann wäre z.B. denkbar, dass einige User verschiedene Programme geöffnet haben und VBA Excel Werte nicht schreiben kann, weil es nicht den Focus hat, bzw. dass Zellen zwar gefüllt, die Eingabe aber nicht abgeschlossen wird.
    Dies würde auch erklären, warum es mal geht und mal nicht.
    D.h. probiert doch mal aus, ob da wo die Probleme auftreten diese auch sind, wenn NUR Excel und sonst kein Programm auf ist.

    Ich habe auch Probleme, wenn Excel mit einer Eingabemaske "scharf" ist und die Nutzer zwischen den Programmen hin- und herswitchen. Da kann schon mal ein Tastaturbefehl im falschen Programm landen.
     
  8. SlamJam

    SlamJam Thread Starter MacUser Mitglied

    Beiträge:
    10
    Zustimmungen:
    0
    MacUser seit:
    01.09.2006
    Aaaaalso:

    - Es gibt keine Eingabemaske.

    - Jede Person hat eine eigene, personalisierte Datei.

    - Es gibt drei Funktionen in einem VBA-Modul.

    - Eine von diesen dreien wird durch das Ereignis "Worksheet_Calculate()" auf zwölf Arbeitsblättern der Excel-Mappe aufgerufen und ändert den Zellenkommentar der aktiven Zelle, bei welcher durch ein Dropdown (durch das Gültigkeitsprüfungsmenü erstellt) Werte geändert werden. Diese Information in der Zelle ist nicht essentiell, da man in einem eigenen Tabellenblatt dieselbe Information auch nachsehen könnte.

    - Zwei der Funktionen werden durch Klick auf einen Formular-Button im Arbeitsblatt ausgelöst. Die Excel-Datei hat demnach in diesen Momenten immer den Fokus, weil das Ereignis unmittelbar durch eine Aktion des Users in Excel ausgelöst wird.

    - Die eine dieser beiden Funktionen macht nichts anderes als die vorbereitete Fensterfixierung aufzuheben und anzuwenden, da die Zellendropdowns (der Gültigkeitsprüfung) bei Mac-Excel nur aktiv sind, wenn keine Fensterfixierung drin ist (gleich wie bei Office 97 für PC). Diese Funktion ist auch zu Vernachlässigen, weil dieser Vorgang auch leicht manuell durchgeführt werden kann. Sie dient ausschliesslich der Benutzerfreundlichkeit.

    - Die andere dieser Funktionen fügt per Klick eine neue Zeile ein, in die der User weitere Daten eingeben kann, falls nicht genügend Zeilen zur Verfügung stehen. Dies ist deshalb wichtig, weil eine manuell eingefügte Zeile nicht alle Bedingungen erfüllen würde, welche für das automatisierte Verarbeiten der Datei nötig sind. Diese Funktion ist essentiell. Sie könnte nur umgangen werden, indem zum Vornherein viel mehr Zeilen zur Verfügung stehen würden, was die Übersichtlichkeit erschwert und nur von wenigen Usern gebraucht würde.

    @peterg:
    Möglicherweise ist die Korruption nach dem Mailversand tatsächlich nicht dasselbe Problem. Die Dateien werden normalerweise vor dem Versand gezippt. Dagegen spricht aber, dass bei gleichen Gewohnheiten die Dateien eine Zeit lang korrekt ankamen, und erst ab einem gewissen Punkt korrupt, aber ab dann immer. Das Versand-Problem wurde mal vom örtlichen Mac-Supporter angesehen, und auch die Art wie die Files gezippt werden.

    D.h. es gibt insgesamt drei Probleme:
    - Das häufigste ist, dass die Files korrupt in der PC-Administration ankommen und nicht in Access eingelesen werden können, da Excel abstürzt. Zu diesem Problem habe ich in Access per VBA eine Funktion geschrieben, die bei abstürzenden Excel-Files Excel korrekt abschiesst und diese Dateien in einen speziellen Ordner verschiebt. Danach werden diese Dateien allesamt über einen Klick in Open Office geöffnet und neu als Excel abgespeichert, worauf sie sich problemlos in Access einlesen lassen. Soll das einer verstehen ....

    - Das zweite Problem ist, dass sich in einem Fall die Datei auf Mac zwar öffnen lässt, und Daten können eingegeben werden, jedoch kommt beim Speichern die Meldung "Datei nicht gespeichert. Alle gespeicherten Kopien wurden gelöscht". Bei älteren Mac-Office Versionen kommt der Fehler 2 beim Öffnen dieser Dateien und Excel stürzt ab. Mittlerweile habe ich getestet dass bei Mac OS X mit Office 2004 sowie auch bei Mac OS 9.1 mit Office 98 diese Probleme nicht mehr auftreten, nachdem das VBA-Modul entfernt wurde.

    Aber es kommen keine Makro-Fehlermeldungen.

    Das wäre es so in etwa, etwas detaillierter.

    Danke für Eure Anteilnahme :)
     
  9. peterg

    peterg MacUser Mitglied

    Beiträge:
    2.752
    Zustimmungen:
    184
    MacUser seit:
    02.03.2005
    Hallo,

    das sind ja gleich mehrere und vermutlich sehr komplexe Probleme.

    Trotz gegenteiliger Meinung in diesem Forum und auch unabhängig von den Bezeichnungen: nach meiner Erfahrung haben VBA Office Win und VBA Office Mac nur wenig miteinander gemeinsam. Das eine ist eine ältere Teilversion des anderen (und soll mit der nächsten Version von Office Mac eingestampft werden). Das ist eine permanente Fehlerquelle. Deshalb habe ich mich mit diesem Thema schon lange nicht mehr ausgiebig beschäftigt - doch Jabba kennt das ja offensicht sehr gut...

    Hinsichtlich der von Excel als korrupt erkannten Dateien: da bleibt nur der Weg zu prüfen, was auf den betroffenen Maschinen denn nun tatsächlich so passiert (ist). Wird z.B. als Exportfunktion ein Teil eines Arbeitsblattes als separate Excel-Datei gespeichert? Gibt es Änderungen in der System- oder Programmumgebung? Die Zip-Dateien lassen sich offensichtlich klaglos entzippen - am Übertragungsprotokoll kann es also nicht liegen. Doch auch hier ist wohl Kleinarbeit angesagt: wie sieht die Datei vor dem zippen und dem Mailtransport aus? Die Schritte müssten ggf. einzeln durchgegangen und geprüft werden... Doch einen Workaround hast Du hier ja schon.

    Du merkst - die Fehlerquellen sind vielfältig. Vermutlich ist es nicht einfach eine Funktion, die mit anderem Parameter aufgerufen werden muss, sondern mehrere Maßnahmen.

    Sorry - weitere Ferndiagnose ist mir leider nicht möglich.

    Peter
     
  10. SlamJam

    SlamJam Thread Starter MacUser Mitglied

    Beiträge:
    10
    Zustimmungen:
    0
    MacUser seit:
    01.09.2006
    Ist schon gut, peterg. Ich find's ja nur schon toll, dass solche Probleme hier ernst genommen werden.

    Zum anderen kann ich bestätigen, dass Mac-Excel-VBA in etwa auf dem Stand von VBA für Excel 97 der PC-Version ist, daher habe ich den Code auch auf diesem Stand programmiert.

    Die Mailsache könnte man natürlich insofern überprüfen, dass man etwa eine Datei vor Ort auf USB-Stick speichert und dann direkt von dort bei der PC-Admin öffnet. Wenn sich so die Datei öffnen liesse, dann wäre zumindest dieses Problem definitv beim Mailversand zu suchen.

    Nun gut. Die Sache ist die, dass der Betrieb in eineinhalb Jahren sämtliche Abteilung auf PC migriert und sämtliche Abteilungen, welche derzeit in einer ganzen Stadt verteilt sind, in einen einzigen Neubau ziehen. Die jetzige Struktur ist eine gewachsene Sache, die sich aus der Zusammenlegung verschiedener Schulen ergeben hat, welche in sich unabhängige Systeme entwickelt hatten.

    Ich selber ziehe jedenfalls die Lehre daraus, dass Projekte mit unterschiedlichen Plattformen mit höchster Vorsicht angegangen werden müssen.

    Abgesehen davon wird es ev. mal an der Zeit, mit dem Problem bei Microsoft vorstellig zu werden, da es ja nicht ein Mac-Problem an sich ist, sondern ein Office Problem.
     

Diese Seite empfehlen