AW: mehrere Private Sub Worksheet_Change
05.10.2016 13:45:17
EtoPHG
Hallo Christof,
Nicht du stehst dir im Weg, sondern dein Verständnis für das _Change Ereignis fehlt!
Du legst erst mal fest, in welchem Bereich Änderungen durch die manuelle Änderungen von Zellinhalten deine Manipulationen an anderen Zellinhalten auslösen sollen.
Dann musst du prüfen, ob dieser Bereich von ausgelösten Zelländerungen betroffen ist.
Wenn ja, schaltest du die Ereignissteuerung aus, führst deine Manipulation durch und schaltest sie wieder ein. Das könnte dann z.B. so aussehen:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
' Prüfbereiche festlegen
Dim rC As Range
Dim Bereich1 As Range
Dim Bereich2 As Range
' Prüfen ob Veränderungen in den Bereichen
Set Bereich1 = Intersect(Target, Range(Cells(7, 18), Cells(7, 77)))
Set Bereich2 = Intersect(Target, Range(Cells(10, 18), Cells(10, 77)))
' Event-Steuerung aus
Application.EnableEvents = False
If Not Bereich1 Is Nothing Then
' Für alle Zellen im geänderten Bereich1
For Each rC In Bereich1
If rC 0 Then Range("G18").Value = Range("D18").Value + 1
Next rC
End If
If Not Bereich2 Is Nothing Then
' Für alle Zellen im geänderten Bereich2
For Each rC In Bereich2
If rC 0 Then Range("J18").Value = Range("I18").Value + 1
Next rC
End If
' Event-Steuerung ein
Application.EnableEvents = True
End Sub
Gruess Hansueli