Avatar billede Niessau Juniormester
05. september 2019 - 20:18 Der er 5 kommentarer og
1 løsning

VBA Skjul/Vis rækker ved antal

Hej med jer

Er der en klog person på VBA koder, som kan hjælpe mig.

Jeg har i A2 "Børn i alt", B2 skrives antallet, i kolonne A (fra A3, står der "Navn" - disse er der 10 af).

Tanken er, når jeg skriver antal "børn", f.eks. 2 (i B2), skal der kun være 2 af rækkerne synlige (fra A3) - resten er skjulte. Jeg tænker at rækkerne skal væres skjulte til at starte med, så det skal være en VBA som frem viser to rækker hvis det er 2, eller 3 rækker hvis antallet er 3.

Lad mig høre fra jer, jeg kender en smule til VBA-koder, men meget begrænset.

Mvh
Chris Nielsen
Avatar billede store-morten Ekspert
05. september 2019 - 21:13 #1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False

If Range("B2") < 1 Or Not IsNumeric(Range("B2")) Then
Rows("3:13").EntireRow.Hidden = True
Application.ScreenUpdating = True
Exit Sub
End If

If Intersect(Target, Range("B2")) Is Nothing Then

    Rows("3:13").EntireRow.Hidden = False
    Rows(Range("B2") + 3 & ":13").EntireRow.Hidden = True

End If
Application.ScreenUpdating = True
End Sub
Avatar billede store-morten Ekspert
05. september 2019 - 21:20 #2
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False

If Range("B2") < 1 Or Range("B2") > 10 Or Not IsNumeric(Range("B2")) Then
Rows("3:13").EntireRow.Hidden = True
Application.ScreenUpdating = True
Exit Sub
End If

If Intersect(Target, Range("B2")) Is Nothing Then

    Rows("3:13").EntireRow.Hidden = False
    Rows(Range("B2") + 3 & ":13").EntireRow.Hidden = True

End If
Application.ScreenUpdating = True
End Sub
Avatar billede Niessau Juniormester
06. september 2019 - 20:28 #3
Hej store-morten
Mange tak for svar, jeg sidder med det nu, og er kommet på den ide at vi skal starte med indtastning i B28 (undskyld).
Jeg har derfor forsøgt at rette i din VBA kode, men ser ikke helt ud til det går, har gjort følgende:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False

If Range("B28") < 1 Or Range("B28") > 10 Or Not IsNumeric(Range("B28")) Then
Rows("29:39").EntireRow.Hidden = True
Application.ScreenUpdating = True
Exit Sub
End If

If Intersect(Target, Range("B28")) Is Nothing Then

    Rows("29:39").EntireRow.Hidden = False
    Rows(Range("B28") + 29 & ":40").EntireRow.Hidden = True

End If
Application.ScreenUpdating = True
End Sub

Kan du hjælpe mig hvad jeg gør forkert, den skjuler række 39?

God aften
Chris
Avatar billede Niessau Juniormester
06. september 2019 - 20:43 #4
Jeg har nu rettet lidt i den, men den vil ikke lade mig få 10 antal med, når jeg skriver det fjerner den rækken under navnene, samtidig med den kun viser 9 navnefelter, så ved 10 fjerner den 2 rækker.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False

If Range("B28") < 1 Or Range("B28") > 10 Or Not IsNumeric(Range("B28")) Then
Rows("29:38").EntireRow.Hidden = True
Application.ScreenUpdating = True
Exit Sub
End If

If Intersect(Target, Range("B28")) Is Nothing Then

    Rows("29:38").EntireRow.Hidden = False
    Rows(Range("B28") + 29 & ":38").EntireRow.Hidden = True

End If
Application.ScreenUpdating = True
End Sub

Jeg har sat 29:38 da dette er 10 rækker, du havde skrevet 3:13 dette er egentlig 11 rækker.
Avatar billede store-morten Ekspert
06. september 2019 - 21:28 #5
Prøv:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False

If Range("B28") < 1 Or Range("B28") > 10 Or Not IsNumeric(Range("B28")) Then
Rows("29:38").EntireRow.Hidden = True
Application.ScreenUpdating = True
Exit Sub
End If

If Intersect(Target, Range("B28")) Is Nothing Then

    Rows("29:38").EntireRow.Hidden = False

'Hvis alle 10, skjul ingen rækker,
'for ellers skjules række 10+29:38 altså: række 38 og 39   
If Range("B28") = 10 Then
Application.ScreenUpdating = True
Exit Sub
End If


    Rows(Range("B28") + 29 & ":38").EntireRow.Hidden = True

End If
Application.ScreenUpdating = True
End Sub
Avatar billede Niessau Juniormester
06. september 2019 - 22:16 #6
Det er så smukt, mange tak. Jeg opretter en ny sag om et øjeblik, som drejer sig om noget andet.

God aften
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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