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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.