15. august 2019 - 12:36Der er
5 kommentarer og 2 løsninger
Skjul række baseret på værdi i celle
I et excelark skal brugerne sætte kryds (x) i celle B3 eller B4 (Blå eller Gul) Alt efter hvad der vælges, skal rækker, hvor der står fx Blå eller Gul i G-kolonnen skjules/vises. Ideer til, hvordan man nemmest laver det. Og gerne således at makroen kaldes, når x'et sættes.
Det kunne være noget i stil med dette. Ret selv områderne til.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("B3:B4")) Is Nothing Then Columns.EntireColumn.Hidden = False Rows.EntireRow.Hidden = False If Range("B3") = "X" Or Range("B3") = "x" Then Range("D:F").EntireColumn.Hidden = True Range("7:9").EntireRow.Hidden = True End If If Range("B4") = "X" Or Range("B4") = "x" Then Range("G:H").EntireColumn.Hidden = True Range("11:17").EntireRow.Hidden = True End If End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("b3:b4")) Is Nothing Then Columns.EntireColumn.Hidden = False Rows.EntireRow.Hidden = False
If Target.Address = "$B$3" And Target.Value = "x" Then
For Each c In Range("g5:g50").Cells If UCase(c.Value) = "GUL" Then c.EntireRow.Hidden = True End If Next End If If Target.Address = "$B$4" Then
For Each d In Range("g5:g50").Cells If UCase(d.Value) = "BLÅ" Then d.EntireRow.Hidden = True End If Next End If End If End Sub
Tester - er der noget med at sub'en skal ligge et bestemt sted for, at virke (være synlig). Jeg er ikke erfaren med at skrive vba i Excel - Word er mere simpelt
Hej Jan, Det kan du da have ret i. Jeg lavde ikke læst opgaveformuleringen ordentligt. Her er et andet forslag.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("B3:B4")) Is Nothing Then Dim c As Range Columns.EntireColumn.Hidden = False Rows.EntireRow.Hidden = False If Range("B3") = "X" Or Range("B3") = "x" Then For Each c In Range("G5:G1000") If c = "Blå" Then c.EntireRow.Hidden = True End If Next End If If Range("B4") = "X" Or Range("B4") = "x" Then For Each c In Range("G5:G1000") If c = "Gul" Then c.EntireRow.Hidden = True End If Next End If End If End Sub
Hej i 2 kloge hoveder (og alle kloge hoveder) Skal koden gemmes et bestemt sted Modules eller under arket ? Jeg er ikke vant til at lave vba kode i Excel, Word er ikke helt så kompliceret.
Højreklik på fanebladet og gem den under Vis Koder
Synes godt om
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.