PDA

Vollständige Version anzeigen : Makro Problem More Speed


Abbyex
29.07.2012, 22:35
Hallo zusammen,

ich hoffe jemand kann mir bei folgendem Problem helfen:
Ich habe im Internet ein Makro gefunden,:grins: :mad: womit geschriebene Makros beschleunigt werden können:

Option Explicit

Dim AppCalc
Dim AppScreen
Dim AppEvents
Dim AppCursor

Public Sub Aufruf()
On Error GoTo raus
Call More_speed
'Hier deinen eigentlichen Code starten
Call Tabellen_Vergleichen
'
'
'
raus:
Call Meine_Einstellungen
End Sub


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


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


Davon habe ich nur diesen Teil benutzt:


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


Mein Makro war nun tatsächlich schneller. Aber da die Zahlen der Auswertung mit einer Grafik zusammenhängen scheint diese nun eingefroren zu sein, denn sie verändert sich in keiner Weise mehr.
Ich glaube, dass ich irgendwelche Grundeinstellungen verändert und gespeichert habe. Wie kann ich dies rückgängig machen? Wie kann ich (wenn möglich) das Beschleunigungs-Makro benutzen ohne, dass mir dann dieser Fehler wieder passiert?

Danke schon mal im Vorraus!

Hajo_Zi
30.07.2012, 04:56
hast Du schon DoEvents versucht?

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm" onclick="window.open(this.href);return false"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

jeder mann
30.07.2012, 05:05
Hallo, Abbyex,

solltest Du irgendwann einmal während der Ausführung des Makros einen Laufzeitfehler erhalten haben, werden die Originaleinstellungen nicht wieder hergestellt. Von daher empfehle ich Dir einen Blick in die Excel-Optionen oder F9 für Neuberechnung (dies sollte unten in der Statuszeile angezeigt werden).

P.S.: für mich auf einem Notebook im Stromsparmodus mit weißer Foreneinstellung ist ein Text in der Farbe Silber für einen nicht formatierten Code nicht eben gut lesbar. Besser wäre meiner Meinung nach die Verwendung der Code-Tags.

EarlFred
30.07.2012, 07:37
Hallo ?,

Davon habe ich nur diesen Teil benutzt:
schau Dir mal in Ruhe an, was der Code eigentlich tut - nur einen Teil davon zu verwenden dürfte nicht zielführend sein. jeder manns Anmerkungen zur Fehlerbehandlung solltest Du ernst nehmen.

Probier mal folgende Zeilen, um Excel wieder zum Rechnen zu bewegen:

Sub reset_more_speed()
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
.EnableEvents = True
.Cursor = xlDefault
End With
End Sub
Einige Zeilen dürften nicht nötig sein, aber zur Sicherheit habe ich sie dennoch aufgeführt.

Grüße
EarlFred

Abbyex
30.07.2012, 20:48
Hallo EarlFred,

vielen Dank für deine schnelle und vor allem hilfreiche Antwort!
Mein Problem konnte ich dank dir nun sehr schnell lösen und meine Grafiken funktionieren wieder.

5 von 5 Sternen für Schnelligkeit
5 von 5 Sternen für die gute Erklärung
5 von 5 Sternen für das Makro
5 von 5 Sternen für Fachkompetenz

:top: :top: :top: :top: :top:

Vielen vielen Dank!!! :)