Avatar billede fyrsten25 Praktikant
17. december 2014 - 15:21 Der er 6 kommentarer og
1 løsning

Automatisk skjul af inaktive rækker ved brug af makroer

Hej

Jeg har lavet et skema i et regneark hvor der er mange tomme rækker. Disse rækker skal evt. bruges, men mens de ikke er i brug ønsker jeg dem skjult, så det giver et bedre overblik.

Eksempel:
http://s000.tinyupload.com/?file_id=92305856506508713981

Hvis eksempelvis B10 er aktiv, så skal B11 vises, mens resten af rækkerne foruden "I alt"-rækken forneden skal skjules.

Er der nogen der har en løsning på dette?
Avatar billede jens48 Ekspert
17. december 2014 - 16:34 #1
Prøv med denne makro. Den aktiveres når der skrives i kolonne B

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Application.ScreenUpdating = False
Range("B5:B60").EntireRow.Hidden = False
For x = 6 To 60
If Cells(x, 2) = "" And Cells(x - 1, 2) = "" Then
Cells(x, 2).EntireRow.Hidden = True
Else
Cells(x, 2).EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End If
End Sub
Avatar billede fyrsten25 Praktikant
17. december 2014 - 17:04 #2
Mange tak!
Lige præcis hvad jeg søgte. Hvis du sender et svar, så skal jeg nok lige give point.
Avatar billede jens48 Ekspert
17. december 2014 - 17:26 #3
Godt det kunne bruges
Avatar billede fyrsten25 Praktikant
17. december 2014 - 18:04 #4
Hvis nu jeg i øvrigt har flere tabeller ned igennem arket med samme udseende, som skal gøre det samme?
Avatar billede fyrsten25 Praktikant
17. december 2014 - 18:26 #5
Fandt ud af det.
Avatar billede jens48 Ekspert
17. december 2014 - 18:33 #6
Så kan du gentage en del af makroen. Jeg har lavet et eksempel nedenfor, hvor den også checker linerne fra 80 til 120. Ret selv til. Der er sat et par tomme linier ind så det er let at se hvad der skal gentages

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Application.ScreenUpdating = False

Range("B5:B60").EntireRow.Hidden = False
For x = 6 To 60
If Cells(x, 2) = "" And Cells(x - 1, 2) = "" Then
Cells(x, 2).EntireRow.Hidden = True
Else
Cells(x, 2).EntireRow.Hidden = False
End If
Next

Range("B80:B120").EntireRow.Hidden = False
For x = 80 To 120
If Cells(x, 2) = "" And Cells(x - 1, 2) = "" Then
Cells(x, 2).EntireRow.Hidden = True
Else
Cells(x, 2).EntireRow.Hidden = False
End If
Next

Application.ScreenUpdating = True
End If
End Sub
Avatar billede fyrsten25 Praktikant
17. december 2014 - 18:57 #7
Fantastisk! Mange tak!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester