Perfekt Danke dir!
Ich habe jetzt noch versucht den Code ein wenig zu erweitern.
Ich habe noch ein Tabellenblatt 7.
Bei dem soll die Spalte F ausgeblendet werden, wenn Zelle D4 leer ist.
Bei dem soll die Spalte G ausgeblendet werden, wenn Zelle D5 leer ist.
Bei dem soll die Spalte H ausgeblendet werden, wenn Zelle D6 leer ist.
Bei dem soll die Spalte I ausgeblendet werden, wenn Zelle D7 leer ist.
Bei dem soll die Spalte J ausgeblendet werden, wenn Zelle D8 leer ist.
Bei dem soll die Spalte K ausgeblendet werden, wenn Zelle D9 leer ist.
Habe hierzu folgenden Code ergänzt. Klappt leider nicht, was mache ich falsch?
Liebe Grüße
Benjamin
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
|