Option
Explicit
Private
Sub
Worksheet_Change(
ByVal
Target
As
Range)
Dim
objRange1
As
Range, objRange2
As
Range, objRange3
As
Range, objCell
As
Range
Dim
lngStep
As
Long
Set
objRange1 = Range(Cells(4, 4), Cells(9, 4))
Set
objRange2 = Range(Cells(4, 4), Cells(9, 4))
Set
objRange3 = Range(Cells(4, 4), Cells(9, 4))
If
Not
Intersect(Target, objRange1)
Is
Nothing
Then
For
Each
objCell
In
objRange1
With
Tabelle4
.Range(.Columns(objCell.Row + 5 + lngStep), .Columns(objCell.Row + 7 + lngStep)).EntireColumn.Hidden = objCell.Value = vbNullString
End
With
Columns(objCell.Row).EntireColumn.Hidden = objCell.Value = vbNullString
lngStep = lngStep + 3
Next
ElseIf
Not
Intersect(Target, objRange3)
Is
Nothing
Then
For
Each
objCell
In
objRange3
With
Tabelle7
.Range(.Columns(objCell.Row + 2)).EntireColumn.Hidden = objCell.Value = vbNullString
End
With
Columns(objCell.Row).EntireColumn.Hidden = objCell.Value = vbNullString
Next
ElseIf
Not
Intersect(Target, objRange2)
Is
Nothing
Then
For
Each
objCell
In
objRange2
With
objCell
Columns(.Row).EntireColumn.Hidden =
Not
IsEmpty(.Value)
And
.Value = 0
End
With
Next
End
If
Set
objRange1 =
Nothing
Set
objRange2 =
Nothing
Set
objRange3 =
Nothing
End
Sub