AW: Wie kann man die Endlosschleife finden
Yal
Hallo Norbert,
vielleicht wird Onur schneller sein...
Wenn Du Ereignisprozedure einsetzst, kann es vorkommen, dass Du damit eine Aktion anstosst, die selbst eine Ereignisprozedure auslöst. Diese Neuauslösen sieht in VBA-Editor, als ob die Procedure wieder am Anfang startet, aber in Realität eine ganze neue Verarbeitung startet. Die bisherige Verarbeitung wird auf dem Staple gelegt (ein spezielle Speicher-Konstrukt im CPU) und die neue dann drauf, und wieder die neue, und wieder die neue, usw. bis Stapel voll ist und dann Excel abstürzt.
Beispiel:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("A1") = 1 'hier wird in der Zelle A1 geschrieben, was ein Worksheet_Change auslöst
End Sub
Lösung: Ereignis ("Events") nicht erlauben:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False 'Events blockieren
Range("A1") = 1
Application.EnableEvents = True 'nicht vergessen, Events wieder zu erlauben
End Sub
VG
Yal