Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

"Berechnen" - Status abfragen

"Berechnen" - Status abfragen
25.05.2004 20:43:01
Martin
Hallo,
gibt es eine Möglichkeit in VBA abzufragen, ob eine Datei neu berechnet werden müsste? In der Statuszeile wird es als "Berechnen" angezeigt, man müsste da doch irgendwie drauf zugreifen können, aber ich habe in der VBA Hilfe nichts finden können.
Es gibt für Pivot-Charts die "IsCalculated"-Eigenschaft, gibt es sowas nicht für das Workbook-Objekt auch?
Ich möchte gerne nach dem Öffnen einer Datei mit Workbooks.Open("tabelle.xls",1) [also mit aktivierter Aktualisierung von externen Verknüpfungen] prüfen, ob eine neuberechnung nötig geworden ist und nur in diesem Fall ein Calculate ausführen lassen.
Danke im Voraus
Gruß Martin

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Berechnen" - Status abfragen
kdosi
Hallo Martin, ich denke solche Eigenschafft (wie "EsGibtZellenZumCalculation") gibt es nicht. Wenn ich es richtig verstehe, dann kann man Excel so einstellen, das Calculation entweder automatisch. oder manuell oder ... (Tools/Options). Also falls Du die Calculation auf manuelle gestellt hast )wie ich :-), dann macht er es aleine, also dass heisst fuer mich dass er immer selber entscheidet, was zu "calculate" ist und was nicht.
Man kann aber den Calculate Event abfangen, und "etwas" dabei machen. Es stehen volgenden Event Handlers zu verfuegung :
Class DieseArbeitsmappe ->

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
hier kann man den Calculate Evnet beliebigen Sheets abfangen
Class Tabelle -> 

Private Sub Worksheet_Calculate()
hier kann man den Calculate Event fuer einen bestimmten Sheet (fuer den, wo der Code lauft)
Und man kann noch den Calculate Evnet von Chart und Application Objekten abfangen. Dazu muss man sich nur einen nueuen Class Modul anlegen, z.B. so fuer Application Object :
' Code im Class Modul, benannt als CAppExcel
Option Explicit
Public WithEvents AppExcel As Application

Private Sub AppExcel_SheetCalculate(ByVal Sh As Object)
MsgBox "SheetCalculate ..."
End Sub


Private Sub Class_Initialize()
Set AppExcel = Application
End Sub

' in ein Modul kommt
Option Explicit
Sub AppExcelClassTest()
Dim AppExcel As CAppExcel

Set AppExcel = New CAppExcel

End Sub

Fuer den Chart Object sieht es sehr ehnlich aus :
' in Class Modul namens CChart kommt
Option Explicit
Public WithEvents SomeChart As Chart

Private Sub Class_Initialize()
' hier koennte man z.B. einen neuen Chart erstellen
Set SomeChart = Application.Charts.Add(, , 1)
With SomeChart
.SetSourceData Worksheets(1).Range("a1:e2"), xlByRows
.Name = "SomeChart aus der Classe CChart"
.Deselect
End With
End Sub


Private Sub SomeChart_Calculate()
Static counter
counter = counter + 1
MsgBox "SomeChart_Calculate Event ist zum " & counter & " mal ausgeloest worden ", _
vbInformation, VBA.Now
End Sub

' und in ein gewohnliches Modul kommt
Sub ChartClassTest()
Dim ChartTest As CChart

Set ChartTest = New CChart

ChartTest.SomeChart.SetSourceData Worksheets(1).Range("c4:f5")
End Sub

In dem jeweiligen Class Modul sind oben zwei Combos, aus den linken waehle z.B. im Class Modul CChart SomeChart und in dem rechten wirst Du die vorhandenen Events sehen.
Also ich weiss nicht ob Du jetzt glucklicher bist als am Anfang :-). Gruss kdosi aus cz
Anzeige
AW: "Berechnen" - Status abfragen
27.05.2004 17:22:39
Martin
Vielen Dank erst mal, aber das hilft mir aber leider nicht wirklich weiter. Ich will ja eben nicht, dass das das Berechnen automatisch gestartet wird. Sondern aus dem VBA Code heraus eben nur in dem Fall, wenn Excel nach dem Öffnen eines Workbooks ja auch selbst erkennt, dass es was zu berechnen gibt, eben wenn in der Statuszeile "Berechnen" steht, z.B. eben nach einer durchgeführten Aktualisierung.
Weiß da jemand sonst vielleicht noch Rat?
Danke
Martin

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige