Avatar billede kaad Nybegynder
11. november 2004 - 13:31 Der er 6 kommentarer og
1 løsning

Følgespørgsmål til "skjul rækker i Excel"

Hej,

Jeg har oprettet et regneark der skal fungere som tjekliste i forb med en række spørgsmål man kan svare ja/nej til. Der er ca. 100 rækker med disse spørgsmål og jeg har lavet en conditional formating på cellerne (B2-B100) således det via et panel kun er muligt at svare netop ja/nej.

En række af de underliggende spørgsmål bliver overflødige i det øjeblik der svares nej i række 40. Det betyder:

Hvis række 40 = "Nej" så skal række 70 - 72 automatisk skjules.

Jeg er ikke interesseret i at rækkerne skal sjules ved at man trykker på en knap. Det skal ske automatisk når man vælger "nej".


Kommentar: stewen
11/11-2004 10:32:49

Prøv denne! Jeg har forudsat at man i celle A40 indtaster "Nej" - bemærk at den er case sensisitive. Bemærk ligeledes at koden skal lægges "på arket" i VBA - ikke i et modul

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim selections As Range
Set selections = Range("A40")

If Target.Address = selections.Address Then
       
Application.ScreenUpdating = False

    If Range("a40").Text = "Nej" Then
        Rows("70:72").Hidden = True
   
    Else
        Rows("70:72").Hidden = False
     
    End If
     
End If
   
Application.ScreenUpdating = True

End Sub

-------------------------------------------
Ovenstående er det svar jeg fik af Stewen og dette fungerer fint. Jeg har dog problemer når jeg skal have funktionen til at virke for flere celler i samme ark.


eksempelvis skal cellerne B3, B4, B5, B6 alle få flere af de nedenstående rækker til at skjules automatisk.

Det betyder at B3 hvis "nej" skal få række 48-52 til at skjules
B4 hvis "nej" skal få række 60 - 70 til at skjules
etc...

Jeg har prøvet kopiere ovenstående makro og blot ændre celle/række referencerne men dette virker ikke.

Til information kan jeg oplyse at når jeg har kopieret makroen og ændrer disse referencer skifter status i rullepanelet foroven fra at hedde "worksheet" til at hedde "general"...

Nogen der kan hjælpe?
Avatar billede stewen Praktikant
11. november 2004 - 15:07 #1
Det er selections der skal tælle opad - f.eks. sådan her:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim selections As Range
Set selections = Range("B40")
Set selections1 = Range("B3")
Set selections2 = Range("B4")

Application.ScreenUpdating = False

If Target.Address = selections.Address Then
       
    If Range("B40").Text = "Nej" Then
        Rows("70:72").Hidden = True
   
    Else
        Rows("70:72").Hidden = False
     
    End If
     
End If

If Target.Address = selections1.Address Then
       
    If Range("B3").Text = "Nej" Then
        Rows("48:52").Hidden = True
   
    Else
        Rows("48:52").Hidden = False
     
    End If
     
End If

If Target.Address = selections2.Address Then
       
    If Range("B4").Text = "Nej" Then
        Rows("60:69").Hidden = True
   
    Else
        Rows("60:69").Hidden = False
     
    End If
     
End If

End Sub
Avatar billede stewen Praktikant
11. november 2004 - 15:07 #2
glemte en linie:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim selections As Range
Set selections = Range("B40")
Set selections1 = Range("B3")
Set selections2 = Range("B4")

Application.ScreenUpdating = False

If Target.Address = selections.Address Then
       
    If Range("B40").Text = "Nej" Then
        Rows("70:72").Hidden = True
   
    Else
        Rows("70:72").Hidden = False
     
    End If
     
End If

If Target.Address = selections1.Address Then
       
    If Range("B3").Text = "Nej" Then
        Rows("48:52").Hidden = True
   
    Else
        Rows("48:52").Hidden = False
     
    End If
     
End If

If Target.Address = selections2.Address Then
       
    If Range("B4").Text = "Nej" Then
        Rows("60:69").Hidden = True
   
    Else
        Rows("60:69").Hidden = False
     
    End If
     
End If

Application.ScreenUpdating = True

End Sub
Avatar billede kaad Nybegynder
11. november 2004 - 15:12 #3
Stewen, du er sku mit idol. Kan du så også sørge for at jeg kan få flere rækker af gangen til at skjule sig. Eksempelvis hvis "nej" i B3 så skal række 48-52 OG række 60-62 skjules?
Avatar billede stewen Praktikant
11. november 2004 - 15:14 #4
If Range("B3").Text = "Nej" Then
        Rows("48:52").Hidden = True
        Rows("60:62").Hidden = True
   
    Else
        Rows("48:52").Hidden = False
        Rows("60:62").Hidden = False
       
    End If
Avatar billede kaad Nybegynder
11. november 2004 - 16:29 #5
Det virker - naturligvis!
Avatar billede kaad Nybegynder
11. november 2004 - 16:30 #6
Hey, pointene røg vist ikke i din bøtte. Eller hvad???
Avatar billede stewen Praktikant
12. november 2004 - 08:07 #7
nej! Opret et nyt spm hvor du henviser til denne, så svarer jeg!
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