Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1032to1036
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
Inhaltsverzeichnis

getmorespeed und application.calculation

getmorespeed und application.calculation
18.12.2008 09:45:00
David
Hallo zusammen,
nachdem ich mich in letzter Zeit etwas rar hier gemacht habe, nun mal wieder eine Frage.
Ich hatte mal irgendwann ein Makro "getmorespeed" hier im Forum gefunden (von Hajo, glaube ich?) und verwende dieses des Öfteren in meinem Code.
Hier für alle, die es nicht kennen:

Sub GetMoreSpeed(bYesNo As Boolean)
Application.ScreenUpdating = Not (bYesNo)
Application.EnableEvents = Not (bYesNo)
Application.Calculation = IIf(bYesNo, xlCalculationManual, xlCalculationAutomatic)
If Not bYesNo Then Calculate
End Sub


Ich war bisher der Meinung, dass der aktuelle Status von Application.Calculation mit der Option "Getmorespeed False" wieder auf den vorherigen Wert gesetzt wird.
Nun habe ich aber festgestellt, dass bei eingeschalteter manueller Berechnung und Ausführen meines Makros in der Form


Getmorespeed True
Mein Code
Getmorespeed False


hinterher die automatische Berechnung wieder eingeschaltet ist, was nicht gewollt ist.
Ich erkenne aber nicht, ob und wenn ja was ich ändern müsste, damit das funzt.
In meinem Code wird diese Option übrigens nicht angefasst (bevor jemand fragt)
Vielleicht kann mir ja jemand einen Tip geben.
Danke im Voraus.
Gruß
David

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: getmorespeed und application.calculation
18.12.2008 10:13:44
ransi
HAllo
Du solltest dafür sorgen das wenn dein Programm abstürzt, die alten Einstellungen wieder zurückgesetzt werden.
Schau dir mal diesen Code an:
Option Explicit
Dim AppCalc
Dim AppScreen
Dim AppEvents

Public Sub dein_Code()
On Error GoTo raus
Call More_speed
'Hier dein eigentlicher Code zum übertragen
'
'
'
'
raus:
Call Meine_Einstellungen
End Sub

Public Sub More_speed()
With Application
    '#######################
    'Einstellungen speichern
    AppCalc = .Calculation
    AppScreen = .ScreenUpdating
    AppEvents = .EnableEvents
    '#######################
    'Angezogene Bremsen lösen
    .Calculation = xlCalculationManual 'Berechnung auf manuell
    .ScreenUpdating = False 'Bildschirmaktualisierung aus
    .EnableEvents = False 'Ereignismakros abschalten
    '#######################
End With
End Sub

Public Sub Meine_Einstellungen()
With Application
    .Calculation = AppCalc
    .ScreenUpdating = AppScreen
    .EnableEvents = AppEvents
End With
End Sub


Der ist vom Prinzip her gleich wie:
Sub GetMoreSpeed(bYesNo As Boolean)
Es werden aber auf jedenfall die alten Einstellungen wieder gesetzt.
(und er ist leichter nachzuvollziehen ;-)
ransi
Anzeige
AW: getmorespeed und application.calculation
18.12.2008 10:20:00
David
Hallo ransi,
es geht hier zwar nicht um "abstürzenden" Code, aber prinzipiell hast du Recht. Normalerweise sorge ich auch dafür.
Deswegen ja auch das Getmorespeed am Anfang mit True und am Ende mit False.
Deine Variante funzt und ist auch leicht nachzuvollziehen, aber leider auch um einiges länger. Mich würde jedenfalls trotzdem interessieren, ob meine Variante einen Fehler enthält oder ob dieses Verhalten gewollt ist.
Deswegen lasse ich den Thread mal noch offen.
Auf jeden Fall dir schon mal vielen Dank.
Gruß
David
AW: getmorespeed und calculation
18.12.2008 10:18:39
Erich
Hallo David,
in deiner Funktion steht überhaupt nichts davon, dass der vorige Stand irgendwo festgehalten wird.
Diese Routine solltest du wegwerfen - auch wenn sie hier aus dem Forum ist.
Schau mal in https://www.herber.de/forum/archiv/976to980/t977234.htm
Da findest du (mit Uhrzeit 17:16:38) einen sehr viel besseren Code von Nepumuk
und ein paar Erläuterungen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: getmorespeed und calculation
18.12.2008 10:28:32
David
Hallo Erich,
genau so was habe ich gesucht, "kurz und knackig".
Danke und Gruß
David

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige