Microsoft Excel

Herbers Excel/VBA-Archiv

Regression macht Application.ScreenUpdating TRUE

Betrifft: Regression macht Application.ScreenUpdating TRUE von: Stefan T.
Geschrieben am: 07.09.2004 15:04:52

Für ein paar Regressionsanaylsen nutze ich die Funktion "Regress" des "ATPVBAEN.XLA"-AddIns.

Das Ganze soll im Hintergrund ablaufen.
Deshalb setze ich
Application.ScreenUpdating = False

Allerdings scheint in der Funktion dieser Wert wieder auf True gesetzt zu werden, sodass das Sheet (ein anderes als von wo das Makro gestartet wird) immer wieder eingeblendet wird.

Kann man das irgendwie verhindern?

Stefan

  


Betrifft: AW: Regression macht Application.ScreenUpdating TRUE von: Axel
Geschrieben am: 07.09.2004 16:28:24

Hallo Stefan,

ich würde das unter Excel XP gerne mal nachvollziehen. Die Datei "atpvbaen.xla" gehört unter Excel XP zum AddIn "Analyse-Funktionen - VBA". Es stehen dann eine Reihe technischer Funktion zur Verfügung, interessanterweise auch etliche zur Umrechnung von binären, oktalen, hexadezimalen Zahlen in beliebe andere Formate, aber leider keine Funktion REGRESS().

Es ist nicht auszuschliessen, dass in dem internen Code der Funktion die Bildschirmaktualisierung wieder eingeschaltet wird, ich halte dies aber eher für unwahrscheinlich. Wofür sollte das notwendig sein?

Bist du auch ganz sicher? Platziere doch einige Debug-Ausgaben in deinen Code und lass dir den aktuellen Status der Eigenschaft im Direktfenster ausgeben.

In diesem Zusammenhang mal ein grundsätzlicher Hinweis. Falls Programmcode über den Debugger ausgeführt wird (Einzelschritt- oder Prozedurmodi, etc.) dann wird die Bildschirmaktualsierung von Excel unter bestimmten Konstellationen implizit eingeschaltet.

Falls es tatsächlich an der Funktion liegen sollte, kann das Problem durch Einsatz einiger weniger API-Codezeilen aber trotzdem gelöst werden.

Sprich mich dann einfach nocheinmal an, am Besten direkt über meine Mailadresse wildspitze@gmx.de.

Gruß
Axel


  


Betrifft: AW: Regression macht Application.ScreenUpdating TRUE von: Stefan T.
Geschrieben am: 08.09.2004 08:44:26

Habs gerade nochmal verifiziert.
Wenn ich den Status von Application.ScreenUpdating unmittelbar vor dem Aufruf der Funktion "regress" ausgebe, hat dieser den Wert "False".
Direkt nach dem Funktionsaufruf den Wert "True".

Also wird das scheinbar wirklich in der Funktion zurückgesetzt.

Der Funtkionsaufruf sieht bei mir übrigens folgendermaßen aus:
Application.Run "ATPVBAEN.XLA!Regress", _
ActiveSheet.Range(Cells(TopRegRow, 2), Cells(TopRegRow + numRows - 1, 2)), _
ActiveSheet.Range(Cells(TopRegRow, 3), _
Cells(TopRegRow + numRows - 1, 2 + numCols)), _
False, False, , ActiveSheet.Range(Cells(TopRegRow - 1, 7 + MaxRegs), _
Cells(TopRegRow - 1, 7 + MaxRegs)) _
, False, False, False, False, , False


Diskutieren würde ich das lieber hier im Forum als über mail, da vielleicht andere User auch das Problem haben (bekommen könnten).

Dank dir

Stefan