Microsoft Excel

Herbers Excel/VBA-Archiv

Beim öffnen JEDER Excel-Datei Prüfung

Betrifft: Beim öffnen JEDER Excel-Datei Prüfung von: eres
Geschrieben am: 20.08.2014 11:36:50

Zunächst mal einen "hochsommerlichen" Gruß ins Forum,

bei knapp 17° Celsius suche im nach einer Lösung für folgendes Problem:

Ich möchte immer dann, wenn eine Excel-Datei geöffnet wird prüfen, ob die _ Arbeitsmappenberechnung auf "automatisch" oder "manuell" steht. Die Abfrage an sich ist kein Problem

if Application.Calculation = xlCalculationManual then

Natürlich könnte ich die Abfrage in jeder Datei in Workbook.open Ereignis ablaufen lassen. Das erfüllt aber nicht meine Anforderung. Ich möchte die Prüfung auch für Dateien haben, die ich von anderen zugesendet bekomme.
Habe schon mal mit code in der personl.xlsb oder code in ein AddIn rumgespielt, aber leider ohne Erfolg.
Hat jemand eine Idee.
Bin für jeden Tipp dankbar.

Gruß

erwin

  

Betrifft: AW: Beim öffnen JEDER Excel-Datei Prüfung von: Arthur
Geschrieben am: 20.08.2014 12:11:53

Hallo Erwin.

Hier im Forum wurde dies einst behandelt:
https://www.herber.de/forum/archiv/1088to1092/1089913_Automatische_Berechnung_ausschalten.html

Vielleicht hilft dies weiter.

Gruß, Arthur


  

Betrifft: Vielen Dank Arthur, werde ich mir ansehen. oT von: eres
Geschrieben am: 20.08.2014 12:45:24

.


  

Betrifft: Calculation wird pro Instanz festgelegt - AddIn von: NoNet
Geschrieben am: 20.08.2014 13:04:28

Hallo Erwin,

ich vermute mal, dass Du an folgendem Sachverhalt "scheiterst" :

Die Eigenschaft Application.Calculation wird in Excel nicht pro DATEI/Workbook festgelegt, sondern immer für eine komplette Excel-Instanz (daher auch das Objekt Application.Calculation und NICHT Workbook.Calculation !) :

Die erste in Excel geöffnete Datei einer Instanz bestimmt, ob diese Instanz nun automatisch oder manuell berechnet wird. Diese Eigenschaft ist zwar in der Datei mitgespeichert, wirkt sich allerdings auf die komplette Instanz und damit auf alle ebenfalls in dieser Instanz geöffneten Dateien aus ! Ausnahme bilden natürlich die Dateien, in denen der Berechnungsmodus per VBA geändert wird (auch DIES bezieht sich dann wiederum auf alle geöffneten Dateien in der Instanz !).

Beispiele : Auto1.xlsx, Auto2.xls und Auto3.xlsx wurden mit "automatischer Berechnung" gespeichert, Manu1.xlsx und Manu2.xlsx mit "manueller Berechnung".
Startest Du nun Excel und lädst zunächst eine der Dateien "Auto1.xlsx" bis "Auto3.xlsx", so ist die Instanz auf "automatische Berechnung" konfiguriert - und das bezieht sich dann auch auf die nächträglich geladenen Dateien "Manu1.xlsx" und "Manu2.xlsx".
Umgekehrt verhält es sich ebenfalls : Startest Du Excel neu (oder eine neue Instanz) und lädst zunächst "Manu1.xlsx" oder "Manu2.xlsx", so ist die Instanz auf "manuelle Berechnung" konfiguriert und das gilt auch für die nachträglich geöffneten Dateien "Auto1.xlsx" bis "Auto3.xlsx" - es sei denn, ein Makro (auch in einem AddIn) verändert diese Eigenschaft zwischendurch !

Hier mal ein Beispiel-AddIn zum Prüfen und ggf. Anpassen des Berechnungs-Status der Instanz :

https://www.herber.de/bbs/user/92199.xlam

Salut, NoNet


  

Betrifft: und das dööfste ist, ... von: Rudi Maintaire
Geschrieben am: 20.08.2014 13:25:40

.... dass diese Eigenschaft auch entsprechend in allen WBs gespeichert wird.
ggfs hast du anschließend einen Haufen WBs, die nicht mehr automatisch berechnet werden.

Die erste in Excel geöffnete Datei einer Instanz bestimmt, ob diese Instanz nun automatisch oder manuell berechnet wird.
Fast richtig. Werden alle Dateien (nicht Excel) geschlossen, bestimmt die nächste geöffnete den Berechnungsmodus.

Gruß
Rudi


  

Betrifft: AW: und das dööfste ist, ... von: eres
Geschrieben am: 20.08.2014 13:26:49

Das ist ja alles haesslich ...

Auch dir vielen Dank Rudi.


 

Beiträge aus den Excel-Beispielen zum Thema "Beim öffnen JEDER Excel-Datei Prüfung"