Excel speichern ohne vorher alles durchzurechnen

Dieses Thema Excel speichern ohne vorher alles durchzurechnen im Forum "Microsoft Office Suite" wurde erstellt von klexy, 11. Nov. 2005.

Thema: Excel speichern ohne vorher alles durchzurechnen Situation: Datei A enthält Daten, die per Makro eingespielt werden. Datei B enthält Formeln, die sich auf Datei A...

  1. Situation:
    Datei A enthält Daten, die per Makro eingespielt werden.
    Datei B enthält Formeln, die sich auf Datei A beziehen
    Datei C enthält Formeln, die sich auf Datei B beziehen

    Wenn ich Datei C öffne, wird nach der Aktualisierung der Verknüpfungen gefragt. Das bestätige ich und dann dauert es endlos.
    Wenn aber Datei B schon geöffnet ist, läuft die Aktualisierung viel schneller.
    Ein Makro macht folgendes: Öffnet erst Datei A, dann Datei B, dann Datei C. Nach dem Befehl Calculate speichert und schließt es erst C, dann B, dann A.
    Alle 3 Dateien werden am ursprünglichen Ort und in einem anderen Ordner gespeichert.
    Code:
    Workbooks.OpenText FileName:=C:\Original\Datei A.xls
        Workbooks.OpenText FileName:=C:\Original\Datei B.xls
            Workbooks.OpenText FileName:=C:\Original\Datei C.xls
    Calculate
            ActiveWorkbook.Save
            ActiveWorkbook.SaveAs C:\Kopie\Datei C.xls
            ActiveWindow.Close
        ActiveWorkbook.Save
        ActiveWorkbook.SaveAs C:\Kopie\Datei B.xls
        ActiveWindow.Close
    ActiveWorkbook.Save
    ActiveWorkbook.SaveAs C:\Kopie\Datei A.xls
    ActiveWindow.Close
    Problem:
    C ist gleich zu.
    Wenn B gespeichert wird, fängt er wieder erst mit dem Berechnen an und speichert erst dann.
    Gibt es einen Befehl, der sagt: Speichern und schließen ohne neues Berechnen? Denn berechnet wurde ja schon mit Calculate
    Irgendwas analog zu ActiveWindow.Close SaveChanges:=0
     
  2. Hallo klexy,

    wahrscheinlich hilft dir das weiter:

    Application.Calculation = xlManual
    Application.Calculation = xlAutomatic


    Ciao


    Fibo
     
  3. Nö, leider nicht

    Hab ich schon drin im Makro. Das hilft, daß er nicht alles durchrechnet, wenn er die Datei aufruft. Beim Abspeichern hilft es aber nicht.
     
  4. Hallo klexy,

    schon mal so versucht ?

    Gruß Matjes :)
    Code:
    Option Explicit
    Sub DreiAbhaengigeDateienSpeichern()
    
     Dim wb1 As Workbook, wb2 As Workbook, wb3 As Workbook
     
    ->als Textfile einlesen
    ->:-( schon komisch das die Textdatei die Endung xls hat ???
    ->normalerweise würde ich bei xls Workbooks.Open FileName:=... erwarten
     Workbooks.OpenText FileName:=C:\Original\Datei A.xls
     Set wb1 = ActiveWorkbook
     Workbooks.OpenText FileName:=C:\Original\Datei B.xls
     Set wb2 = ActiveWorkbook
     Workbooks.OpenText FileName:=C:\Original\Datei C.xls
     Set wb3 = ActiveWorkbook
     
     Calculate
     
     wb1.Save->bezieht sich auf nix -> also zuerst speichern
     wb2.Save->bezieht sich auf wb1 -> also als zweite speichern
     wb3.Save->bezieht sich auf wb2 -> also als dritte speichern
     
    ->Kopien anlegen
     wb1.SaveAs FileName:=C:\Kopie\Datei A.xls
     wb2.SaveAs FileName:=C:\Kopie\Datei B.xls
     wb3.SaveAs FileName:=C:\Kopie\Datei C.xls
     
    ->schliessen ohne speichern
     wb1.Close Savechanges:=False
     wb2.Close Savechanges:=False
     wb3.Close Savechanges:=False
    AUFRAEUMEN:
     Set wb1 = Nothing: Set wb2 = Nothing: Set wb3 = Nothing
    End Sub
     
  5. Das mit Workbooks.OpenText FileName:=... ist wahrscheinlich überflüssig, wenn nicht gar falsch. Das hab ich aus einer anderen Makro-Aufzeichnung mit Copy+Paste übernommen, ohne weiter nachzudenken. Funktioniert aber, obwohl es sich um echte Excel-Dateien handelt.
    [Es gibt allerdings wirklich Dateien, die die Endung .xls haben, obwohl sie in Wirklichkeit Text-Dateien sind, zumindest halbwegs. Und zwar wenn man Abfrage-Ergebnisse aus SAP exportiert (Liste als Tabellenkalkulation sichern). Aber das ist eine ganz andere Geschichte.]

    Zum Makro:
    Ich kann nicht erkennen, was daran grundsätzlich anders sein soll, aber ich werde es am Montag gleich ausprobieren.
    Das Problem tritt weder beim Original-Abspeichern auf, noch beim Schließen. Nur beim SaveAs woanders.

    Ich dachte an irgendwas wie wb1.SaveAs FileName:=C:\Kopie\Datei A.xls CalculateAllesNochmal:=False

    Na, schau mer mal. Danke einstweilen.
     
  6. Hallo klexy,

    mein erster Gedanke war, dass zum Zeitpunkt des Schliessens der Datei C die Datei B geschlossen ist und für die Aktuallisierung von C wieder geöffnet und geschlossen wird (im Hintergrund).

    Deshalb denk ich mir, ertsmal alles im geöffneten Zustand speichern und anschließend ohne Speichern schliessen.

    Bin auch auf das Ergebnis gespannt. ;)

    Wenn dieser Schritt nicht zum Erfolg führt, kannst du mir dann mal eine Probe der Dateien schicken ?

    Gruß Matjes :)
     
  7. Hallo klexy,

    ich hab mir das mal etwas genauer angesehen.

    Hab mir 3 Dateien A,B,C so aufgebaut, daß
    - A Werte enthält,
    - B Formeln enthält, die auf Werte aus A verweisen
    - C Formeln enthält, die auf Werte aus B bzw. Formelergebnisse aus B verweisen

    In B in->DieseArbeitsmappe' habe ich folgendes Makro eingefügt:
    Code:
    Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
      Msgbox(B Calculate)
    End Sub
    Wird für Datei B neu berechnet, geht dann eine Msgbox auf.

    Für C entsprechend:
    Code:
    Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
      Msgbox(C Calculate)
    End Sub
    Dann hab ich deinen Makro genommen, so modifiziert, daß die Pfade passen, und ihn dann auf die 3 Dateien losgelassen.
    Ergebnis:
    Nur das explizite Calculate im Makro erzeugt jeweils eine Msgbox für B und C. Beim Speichern wurde nicht neu berechnet.

    Kannst Du das mit deinen Dateien mal nachvollziehen und schauen, ob bei dir doch eine 2. Neuberechnung durchgeführt wird ?

    Gruß Matjes :)
     
  8. ohne Makro: Wenn ich eine Datei nach Bearbeitung mit F9 durchrechnen lasse, danach ein wenig hin und her klicke, aber nichts weiter ändere, will Excel beim Speichern&Schließen nochmal durchrechnen. Wenn man dann Escape drückt, bekommt man per Fehlermeldung die Möglichkeit, auf das erneute Durchrechnen vor dem Abspeichern zu verzichten.

    Im Makro: Die Berechnung findet abgesehen vom ausdrücklichen Calculate-Befehl immer jeweils vor dem SaveAs statt.

    Nach dem Testen deiner 3 Makros bin ich zu folgendem Ergebnis gekommen:
    Das FileCopy-Makro bedeutet fast zwei Drittel Zeitersparnis. Vor dem ersten Abspeichern ist das gewollte Calculate, wodurch der erste Speichervorgang nicht durch ein erneutes Berechnen aufgehalten wird. Da die Dateien vor dem FileCopy schon geschlossen sind, entfällt das ungewollte Berechnen vor Datei B und C

    Hier hab ich das Ergebnis in vereinfachter Form aufgeschrieben (falls mal jemand das Problem haben sollte.
    Code:
    Application.Calculation = xlManual->erstmal das automatische Berechnen ausschalten
    
    Workbooks.Open FileName:=C:\Original\Datei A.xls
        Workbooks.Open FileName:=C:\Original\Datei B.xls
            Workbooks.Open FileName:=C:\Original\Datei C.xls
    Calculate
           ->Abspeichern in umgekehrter Reihenfolge
            ActiveWindow.Close Savechanges:=True->C
        ActiveWindow.Close Savechanges:=True->B
    ActiveWindow.Close Savechanges:=True->A
    
    'hier ist die Reihenfolge jetzt wurscht
    FileCopy C:\Original\Datei A.xls, C:\Kopie\Datei A.xls
    FileCopy C:\Original\Datei B.xls, C:\Kopie\Datei B.xls
    FileCopy C:\Original\Datei C.xls, C:\Kopie\Datei C.xls
    
    Application.Calculation = xlAutomatic->automatisches Berechnen wieder einschalten
    Der Vorteil dabei ist auch, daß die Dateien in beliebiger Reihenfolge rüberkopiert werden dürfen und nicht plötzlich Formeln aus dem Original-Ordner auf Dateien aus dem Kopie-Ordner verweisen. Jeder bleibt in seinem eigenen Ordner.

    Danke Matjes :) :) :)
     
Die Seite wird geladen...

Excel speichern ohne vorher alles durchzurechnen - Ähnliche Themen

Forum Datum
Word aus Excel aufrufen, Dokument aus Vorlage erstellen, speichern und drucken Windows XP Forum 15. Jan. 2013
Probleme beim Abspeichern von Exceldateien Windows XP Forum 22. Aug. 2008
Excel Datei als csv speichern einfache Programmierung? Microsoft Office Suite 29. Juni 2007
Excel.xlb bearbeiten und abspeichern Microsoft Office Suite 23. Nov. 2006
Excel Arbeitsblatt speichern Microsoft Office Suite 18. Nov. 2006