Worksheet_Change
02.11.2004 13:24:18
Gregor
Mit folgendem Makro im Tabellenblatt habe ich mit Worksheet_Change (beim Ändern von Zellinhalten) viele Prüfkriterien eingebaut. Das funktioniert so weit so gut. Wenn ich aber ein anderes Makro ausführe, das eine dieser Zellen betrifft, geht das ellenlang bis alle Prüfkriterien durchgeführt sind. Diese Überprüfung wäre aber beim Ausführen der Makros gar nicht nötig. Gibt es irgendeine Möglichkeit, dass die Makros diese Überprüfung nicht auslösen?
Ich habe zB ein Makro 'Zeile einfügen' mit definierten Zellformatierungen. Dieses Makro dauert durch die unnötige Überprüfung viel zu lange.
'--- Wenn Eingabe ab Spalte E ändert wird in Spalte D Datum aktualisiert
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Column >= 5 And Target.Column <= 71 And Target.Row >= 3 And Target.Row < LastRowSpalte2 Then
Cells(Target.Row, 4) = Date
End If
'--- Wenn Eingabe in Spalte X oder AR bis BF ändert, wird in Spalte X Code aktualisiert
If Target.Column = 24 Or Target.Column = 41 Or Target.Column >= 44 And Target.Column <= 58 Then
If WorksheetFunction.Sum(Range(Cells(Target.Row, 44), Cells(Target.Row, 58))) > 0 _
And Cells(Target.Row, 41) <> "" Then
Cells(Target.Row, 24) = 1
Else
Cells(Target.Row, 24) = 0
End If
End If
'--- Wenn Eingabe in Spalte M oder X ändert, wird in Spalte BN Eintrag aktualisiert
If Target.Column = 13 Or Target.Column = 24 Or Target.Column = 66 Then
If Cells(Target.Row, 24) = 1 Then
Cells(Target.Row, 66) = "IR"
Exit Sub
End If
If Cells(Target.Row, 13) > 0 And Cells(Target.Row, 24) = 0 Then
Cells(Target.Row, 66) = "ER"
Else
Cells(Target.Row, 66) = ""
End If
End If
End Sub
Vielen Dank und Gruss
Gregor