Avatar billede perhol Seniormester
07. marts 2011 - 16:38 Der er 1 løsning

Skjul/Vis rækker hvis - VBA

Jeg har tidligere anvendt nedenstående kode for at vise eller skjule rækker jeg ikke har brug for.


Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("F28:G28")) Is Nothing Then Exit Sub
    If [F28] = "" Or [G28] = "" Then
        ActiveSheet.Unprotect Password:="perhol"
        Rows("29:56").Select
        Selection.EntireRow.Hidden = True
        ActiveSheet.EnableSelection = xlUnlockedCells
        ActiveSheet.Protect Password:="perhol"
    End If
    If [F28] <> "" Or [G28] <> "" Then
        ActiveSheet.Unprotect Password:="perhol"
        Rows("29:56").Select
        Selection.EntireRow.Hidden = False
        Range("A31").Select
        ActiveSheet.EnableSelection = xlUnlockedCells
        ActiveSheet.Protect Password:="perhol"
    End If
End Sub

Den virker perfekt.
Men nu har jeg sommetider brug for endnu flere rækker og ville så kopiere koden sådan her:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("F54:G54")) Is Nothing Then Exit Sub
    If [F54] = "" Or [G54] = "" Then
        ActiveSheet.Unprotect Password:="perhol"
        Rows("55:80").Select
        Selection.EntireRow.Hidden = True
        ActiveSheet.EnableSelection = xlUnlockedCells
        ActiveSheet.Protect Password:="perhol"
    End If
    If [F54] <> "" Or [G54] <> "" Then
        ActiveSheet.Unprotect Password:="perhol"
        Rows("55:80").Select
        Selection.EntireRow.Hidden = False
        Range("A57").Select
        ActiveSheet.EnableSelection = xlUnlockedCells
        ActiveSheet.Protect Password:="perhol"
    End If
End Sub

Det virker ikke, sikkert fordi jeg har 2 Worksheet_Change procedurer på samme side.

Altså, hvordan gør jeg det sådan at hvis

Celle F28 eller celle G28 er tom, så skjules rækkerne 29 til 56

Og hvis

Celle F28 eller celle G28 er forskellig fra tom, så vises rækkerne 29 til 56

Og derefter sådan at hvis

Celle F54 eller celle G54 er tom, så skjules rækkerne 55 til 80

Og hvis

Celle F54 eller celle G54 er forskellig fra tom, så vises rækkerne 55 til 80
Avatar billede perhol Seniormester
07. marts 2011 - 18:19 #1
Jeg fandt sør'me selv ud af det.

Her er koden.

Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("F28:G28", "F54:G54")) Is Nothing Then Exit Sub
        If [F28] = "" Or [G28] = "" Then
            ActiveSheet.Unprotect Password:="perhol"
            Rows("29:54").EntireRow.Hidden = True
            ActiveSheet.EnableSelection = xlUnlockedCells
            ActiveSheet.Protect Password:="perhol"

        If [F54] = "" Or [G54] = "" Then
            ActiveSheet.Unprotect Password:="perhol"
            Rows("55:80").EntireRow.Hidden = True
            ActiveSheet.EnableSelection = xlUnlockedCells
            ActiveSheet.Protect Password:="perhol"
        End If
    End If

        If [F28] <> "" Or [G28] <> "" Then
            ActiveSheet.Unprotect Password:="perhol"
            Rows("29:54").EntireRow.Hidden = False
            ActiveSheet.EnableSelection = xlUnlockedCells
            ActiveSheet.Protect Password:="perhol"

        If [F54] <> "" Or [G54] <> "" Then
            ActiveSheet.Unprotect Password:="perhol"
            Rows("55:80").EntireRow.Hidden = False
            ActiveSheet.EnableSelection = xlUnlockedCells
            ActiveSheet.Protect Password:="perhol"
        End If
    End If
   
End Sub
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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