lange Verzögerung bei VBA-Code ausführung

24/07/2008 - 12:46 von Andreas H. | Report spam
Hallo Crackz,

ich mal wieder ;)

habe bei folgendem Code ein kleines Problem:

rivate Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("J44:J45")) Is Nothing _
Or Target.Count > 1 Then Exit Sub

Select Case Target.Row

Case 44
Target.Offset(1, 0) = Target * 1.19
Case 45
Target.Offset(-1, 0) = Target / 1.19

End Select

End Sub

Wenn ich nun in J44 oder J45 einen Wert eintrage, ist die Umrechnung
zwar sofort da, aber alles anderen, wie z.B. eine andere Zelle
anwàhlen oder ein Dropdownmenü auswàhlen möchte, dauert das 10-20
sekunden bis ich es ausführen kann !

Hat jmd ne Idee voran das liegt !?

Danke und viele liebe Grüße

Andreas
 

Lesen sie die antworten

#1 Carlos Naplos
24/07/2008 - 13:15 | Warnen spam
Hallo Andreas

Versuche mal am Anfang des Makros mit "Application.EnableEvents = False" die Ereignisse zu deaktivieren und vor dem Ende wieder zu aktiveren ("Application.EnableEvents = True").

Das verhindert, dass das Makro rekursiv aufgerufen wird, wenn es etwas àndert.

Sub EnableEventsDemo()
On Error GoTo ErrorHandler ' Fehlerbehandlung aktivieren.

Application.EnableEvents = False

<Deine Anweisungen>

ErrorHandler: ' Fehlerbehandlungsroutine
Application.EnableEvents = True

End Sub

Die On-Error-Anweisung sorgt dafür, dass die Ereignisse auch im Fehlerfall wieder aktiviert werden. Beachte, dass sie deaktiviert bleiben, wenn Du das Makro vorher abbrichst. Dann kannst Du "Application.EnableEvents = True" z.B. im Direktbereich (Strg+g) eingeben.

Gruß
CN

Ähnliche fragen