Allerdings braucht das Makro stellenweise mega lange bis es fertig ist und der Anwender weitermachen kann.
Vorne weg allgemeine Fragen.
1. Sollte man bei jeder Anweisung, die Zellinhaltänderung mit sich bringt Application.EnableEvents = False vor und Application.EnableEvents = true nach der Änderung angeben?
2. Sollte man zusätzlich jedes mal auch Application.ScreenUpdating = False bzw. true verwenden?
3. Wie kann ich mehrere Zellinhalte mit einem Befehl löschen? Geht das überhaupt? Aktuell habe ich mehrere Target.Offset(0, ...).Value = "" hintereinander. Siehe Code in fett.
4. Zellinhalt löschen eher mit dem Befehl empty oder mit "" ?
5. Zellfarbenänderung benötigt kein Application.EnableEvents = False bzw. true?
Kann mir hier bitte jemand auf die Sprünge helfen?
An sich ist die Worksheet_change Geschichte eine tolle Sache, aber aktuell hat nach Überarbeitung meiner Datei sich die Laufzeit/Reaktion des Makros mega verschllechtert.
Code:
If Target.Column = 11 Then 'Fzg.-Art WKZ
'Stop
If Target.Value = Empty Then
Target.Offset(0, 0).Interior.ColorIndex = 3
End If
If Target.Value = "704" _
And Target.Offset(0, -2).Value "A" Then
Application.EnableEvents = False
Target.Offset(0, -2).Value = "A" 'Alternative rot markieren
Application.EnableEvents = True
End If
If Target.Value Empty Then
Application.ScreenUpdating = False
Application.EnableEvents = False
Target.Offset(0, 6).Value = ""
Target.Offset(0, 7).Value = ""
Target.Offset(0, 8).Value = ""
Target.Offset(0, 10).Value = ""
Target.Offset(0, 11).Value = ""
Target.Offset(0, 12).Value = ""
Application.EnableEvents = True
End If
If Target.Value = "401" _
Or Target.Value = "411" Then
Application.EnableEvents = False
Target.Offset(0, 6).Value = "9999"
Target.Offset(0, 6).Interior.ColorIndex = 37
Application.EnableEvents = True
End If
If Target.Value = "551 S" Then
Application.EnableEvents = False
Target.Offset(0, 10).Value = ""
Target.Offset(0, 10).Interior.ColorIndex = 3
Application.EnableEvents = True
Else
Application.EnableEvents = False
Target.Offset(0, 10).Value = ""
Target.Offset(0, 10).Interior.ColorIndex = 37
Application.EnableEvents = True
End If
Application.EnableEvents = False
Target.Offset(0, 11).Value = ""
Target.Offset(0, 11).Interior.ColorIndex = 37
Target.Offset(0, 12).Value = ""
Target.Offset(0, 12).Interior.ColorIndex = 37
Application.EnableEvents = True
Application.EnableEvents = False
Target.Offset(0, 15).Value = ""
Target.Offset(0, 16).Value = ""
Target.Offset(0, 17).Value = ""
Target.Offset(0, 18).Value = ""
Target.Offset(0, 19).Value = ""
Target.Offset(0, 20).Value = ""
Target.Offset(0, 21).Value = ""
Target.Offset(0, 22).Value = ""
Target.Offset(0, 23).Value = ""
Target.Offset(0, 24).Value = ""
Target.Offset(0, 25).Value = ""
Target.Offset(0, 26).Value = ""
Target.Offset(0, 27).Value = ""
Target.Offset(0, 28).Value = ""
Target.Offset(0, 29).Value = ""
Target.Offset(0, 30).Value = ""
Target.Offset(0, 31).Value = ""
Target.Offset(0, 32).Value = ""
Target.Offset(0, 33).Value = ""
Target.Offset(0, 34).Value = ""
Target.Offset(0, 35).Value = ""
Target.Offset(0, 38).Value = ""
Target.Offset(0, 39).Value = ""
Application.EnableEvents = True
Target.Offset(0, 15).Interior.ColorIndex = 37
Target.Offset(0, 16).Interior.ColorIndex = 37
Target.Offset(0, 17).Interior.ColorIndex = 37
Target.Offset(0, 18).Interior.ColorIndex = 37
Target.Offset(0, 19).Interior.ColorIndex = 37
Target.Offset(0, 20).Interior.ColorIndex = 37
Target.Offset(0, 21).Interior.ColorIndex = 3
Target.Offset(0, 22).Interior.ColorIndex = 37
Target.Offset(0, 23).Interior.ColorIndex = 37
Target.Offset(0, 24).Interior.ColorIndex = 37
Target.Offset(0, 25).Interior.ColorIndex = 37
Target.Offset(0, 26).Interior.ColorIndex = 37
Target.Offset(0, 27).Interior.ColorIndex = 37
Target.Offset(0, 28).Interior.ColorIndex = 37
Target.Offset(0, 29).Interior.ColorIndex = 37
Target.Offset(0, 30).Interior.ColorIndex = 37
Target.Offset(0, 31).Interior.ColorIndex = 37
Target.Offset(0, 32).Interior.ColorIndex = 37
Target.Offset(0, 33).Interior.ColorIndex = 37
Target.Offset(0, 34).Interior.ColorIndex = 37
Target.Offset(0, 35).Interior.ColorIndex = 37
' Application.EnableEvents = True
End If
Call Ausstieg
Exit Sub
End If
'* Spalte 11 WKZ ENDE
'*******************************************************************************