06. december 2017 - 10:39Der er
5 kommentarer og 3 løsninger
VBA - skjule kolonner baseret på celleindhold - flere forskellige valgmuligheder
Hej.
Jeg har et Excel 2016 ark, hvor jeg skal skjule nogle kolonner baseret på indholdet i celle B3.
Resultatet skal gerne være således: Hvis B3 = 1, skal kolonnerne F:T være skjult, Hvis B3 = 2, skal kolonnerne C:E og I:T være skjult, Hvis B3 = 3, skal kolonnerne C:H og L:T være skjult og så fremdeles for i alt 6 forskellige værdier for B3.
Jeg har prøvet mig lidt frem med nedenstående kode, men det er som om der går noget galt.:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("B3").Value = 1 Then Columns("F:T").EntireColumn.Hidden = True Else Columns("F:T").EntireColumn.Hidden = False
ElseIf Range("B3").Value = 3 Then Columns("C:H").EntireColumn.Hidden = True Columns("L:T").EntireColumn.Hidden = True Else Columns("C:H").EntireColumn.Hidden = False Columns("L:T").EntireColumn.Hidden = False End If
End Sub
Hvis jeg kun lader første del af koden stå, kan den godt skjule kolonnerne ved value=1 i B3, men jeg kan ikke finde ud af at have flere forskellige "if"-betingelser i koden.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("B3")) Is Nothing Then Select Case Target Case 1 Columns("C:T").EntireColumn.Hidden = False Columns("F:T").EntireColumn.Hidden = True Case 2 Columns("C:T").EntireColumn.Hidden = False Columns("C:E").EntireColumn.Hidden = True Columns("I:T").EntireColumn.Hidden = True Case 3 Columns("C:T").EntireColumn.Hidden = False Columns("C:H").EntireColumn.Hidden = True Columns("L:T").EntireColumn.Hidden = True End Select End If End Sub
Du kan give "point" til flere, fx #5 marker som svar
Synes godt om
1 synes godt om dette
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.