ich habe schon einen Beitrag zu diesem Thema im Archiv gefunden, schaffe es leider nicht, den VBA Code dementsprechend anzupassen.
Ausgangssituation:
Ich habe eine Excel Tabelle, in der ich in Feld B10 ein Dropdown-Menü mit 3 Möglichkeiten (auto/semi/manuell) habe. In den Zellen I10, K10.... und aufsteigend tauchen durcheinander die Begriffe "auto/semi/manuell" auf je nach Auswahl im Dropdown-Menü sollen die nichtzutreffenden Spalten ausgeblendet werden. Da die Tabelle kontinuierlich erweitert wird, kann ich mich auch nicht auf einen Endwert in Zeile 10 festlegen. Das sollte dynamisch sein.
Meinen Code, den ich hier im Forum gefunden habe...
----------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim objCell As Range
With Target
If .Address = "$B$10" Then
Application.ScreenUpdating = False
With Range(.Offset(0, 1), Cells(.Row, Columns.Count).End(xlToLeft))
Set objCell = .Find(What:=Trim$(Target.Value), _
LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
If Not objCell Is Nothing Then
.EntireColumn.Hidden = False
Range(Columns(Target.Column + 2), Columns(objCell.Column - 1)).EntireColumn. _
Hidden = True
Else
.EntireColumn.Hidden = False
Set objCell = .Find(What:=Trim$(Target.Value), _
LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
With Target
If objCell.Column > .Column + 2 Then _
Range(Columns(.Column + 2), Columns(objCell.Column - 1)).EntireColumn. _
Hidden = True
End With
End If
End With
Set objCell = Nothing
Application.ScreenUpdating = True
End If
End With
End Sub
Was passiert beim Ausführen....
----------------------------------
Der Code läuft durch, blendet aber nur teilweise die Spalten aus. Irgendwie liegt das wohl an dem Offset und den Columns +/-.
Aber ich kann mit den Begriffen nicht richtig umgehen.
Über eine Unterstützung wäre ich sehr dankbar.
Viele Grüße
Christian