XL2007: Fehler bei Aufruf von Application.Calculation in personal.xlsb

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von peterfido.

    XL2007: Fehler bei Aufruf von Application.Calculation in personal.xlsb

    Excel hat als Standardeinstellung für die Berechnung von Formeln die automatische Neuberechnung eingestellt.

    In meiner Persönlichen Makroarbeitsmappe personal.xlsb möchte ich nun einstellen, daß Excel standardmäßig die manuelle Berechnung von Formeln durchführt (also durch Aufruf über die F9-Taste). Dazu habe ich in der Datei im Modul ThisWorkbook (DieseArbeitsmape) folgenden Code eingefügt:

    Visual Basic-Quellcode

    1. Private Sub Workbook_Open()
    2. ' xlCalculationAutomatic -4105 Die Neuberechnung wird von Excel gesteuert.
    3. ' xlCalculationManual -4135 Die Berechnung erfolgt, wenn der Benutzer diese anfordert.
    4. ' xlCalculationSemiautomatic 2 Die Neuberechnung wird von Excel gesteuert, Änderungen in den Tabellen werden jedoch ignoriert.
    5. Application.Calculation = xlCalculationManual
    6. Application.CalculateBeforeSave = False
    7. End Sub


    Wenn ich Excel starte und dann eine Datei öffne, funktioniert das ohne Probleme.

    Wenn Excel nicht gestartet ist und ich eine Datei öffne, z. B. durch Doppelklick im Windows Explorer oder durch einen Hyperlink, kommt folgende Fehlermeldung:

    "Laufzeitfehler '1004':
    Die Methode 'Calculation' für das Objekt '_Appplication' ist fehlgeschlagen." (siehe Anhang)

    Wenn ich dann die Schaltfläche "Debuggen" anklicke und den Code mit F8 durchgehen will, kommt in der ersten Zeile jedesmal dieselbe Fehlermeldung. Ich muß die Ausführung des Codes also jedesmal beenden.

    Hat jemand eine Idee, was die Ursache ist und wie ich das Problem (alternativ) lösen kann?

    (Win7, Office 2007)
    Bilder
    • FM_XL2007_Calculation.jpg

      17,16 kB, 462×255, 178 mal angesehen
    Erstelle eine neue Excel Datei.

    Dann mit F11 in die Makros gehen.

    Dann ein neues Modul einfügen. Darin folgenen Code:

    Visual Basic-Quellcode

    1. Dim x As New EventClassModule
    2. Sub Auto_open()
    3. InitializeApp
    4. End Sub
    5. Sub InitializeApp()
    6. Set x.app = Application
    7. End Sub


    Dann ein neues Klassenmodul einfügen. Dieses "EventClassModule" nennen.
    Darin folgenden Code:

    Visual Basic-Quellcode

    1. Public WithEvents app As Application
    2. Private Sub app_WindowActivate(ByVal Wb As Workbook, ByVal Wn As Window)
    3. With Application
    4. .Calculation = xlCalculationManual
    5. .CalculateBeforeSave = False
    6. End With
    7. End Sub
    8. Private Sub app_WorkbookAddinUninstall(ByVal Wb As Workbook)
    9. If Wb.Name = "ManCalc.xlam" Then
    10. With Application
    11. .Calculation = xlCalculationAutomatic
    12. .CalculateBeforeSave = True
    13. .Calculate
    14. End With
    15. End If
    16. End Sub


    Dann speichern unter
    Name: "ManCalc.xlam"
    Typ: Microsoft Office Excel-Add-In(*.xlam)

    Anschließend in den Optionen >>AddIns den Mancalc aktivieren.
    Wenn die Namen alle passen, sollte die automatische Berechnung aus sein. Wenn Du das AddIn deaktivierst, sollte sofort automatisch gerechnet werden.
    Dateien
    • ManCalc.zip

      (11,38 kB, 200 mal heruntergeladen, zuletzt: )
    Gruß
    Peterfido

    Keine Unterstützung per PN!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „peterfido“ ()