PDA

Vollständige Version anzeigen : Select Case mit Dropdown-Liste?


Theresa_123
22.09.2011, 15:49
Hallo zusammen :)

ich habe eine Tabelle und möchte in Abhängigkeit des Wertes der Zelle C1 verschiedene Spalten ein-/ bzw. ausblenden. Die Zelle C1 ist dabei ein Dropdownfeld, in dem 12 verschiedene Werte ausgewählt werden können (January, February usw.).

Kann man das mit Hilfe von Select Case lösen? Wenn ja, wie? Leider habe ich nur rudimentäre VBA-Kenntnisse.
Wie genau der Text für Spalten ein- und ausblenden aussieht habe ich einem selbst aufgezeichneten Makro entnommen. Hoffe, das kann ich hier verwenden...

Danke im Voraus!
Theresa

hary
22.09.2011, 16:32
Hallo
versuch mal so. Code in den Code des Tabellenblattes
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
Columns("D:IV").Hidden = True ' blendet ab SpalteD aus
Select Case Target.Value
Case "Januar": Columns("D:H").Hidden = False
Case "Februar": Columns("I:K").Hidden = False
'usw
End Select
End If
End Sub

hilft's weiter
gruss hary

Theresa_123
22.09.2011, 17:56
Soweit ist das schon mal genau das was ich brauche!! :)
Die Spalten werden auch alle ganz fleißig ausgeblendet, aber leider klappt das mit dem Einblenden noch nicht so wirklich.

Habe nun folgenden Code auf dem Tabellenblatt:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
Columns("R:AI").Hidden = True
Select Case Target.Value
Case "Januar": Columns("r:r").Hidden = False
Case "Februar": Columns("s:s").Hidden = False

usw.

End Select
End If
End Sub


Und wie kann ich mehrere Spaltenblöcke angeben?

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
Columns("R:AI").Hidden = True
Select Case Target.Value
Case "Januar": Columns("r:r").Hidden = False
Columns("u:ab").Hidden = False
Case "Februar": Columns("s:s").Hidden = False

End Select
End If
End Sub

hary
22.09.2011, 18:16
Hallo Theresa
Sischer, klappt der Code. Du schriebst aber im Eingangsthread den Monatsnamen in Englisch!!!!! Hier ist aber deutsch. dann geht's nicht.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
Columns("R:AI").Hidden = True
Select Case Target.Value
Case "January": Columns("U:AB").Hidden = False 'Klappt
Case "February": Columns("s:s").Hidden = False 'Klappt

'usw.

End Select
End If
End Sub
gruss hary

Theresa_123
23.09.2011, 12:49
:stupid: Darauf hätte ich auch kommen können ;)

Vielen Dank! Jetzt funktioniert alles einwandfrei!!

Theresa_123
23.09.2011, 16:58
Problem hat sich geklärt.