Avatar billede HHA Professor
07. juli 2021 - 08:35 Der er 5 kommentarer og
1 løsning

VBA skal skjule eller vise øverste 11 linjer

Hejsa,

Jeg har en kode der enten skjuler eller viser de øverste 11 linjer.
Men det er lidt ærgerligt at hver gang jeg bruger dem, så hopper jeg op til toppen af mit ark. Så er der langt at scrolle ned til fx linje 500 bagefter.
Findes der en løsning på dette?

Jeg har indspillet denne kode:

Sub Vis_Top()
'
' Vis_Top Makro

    ActiveSheet.Unprotect
    Rows("1:11").Select
    Range("E1").Activate
    Selection.EntireRow.Hidden = False
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingCells:=True
   
End Sub



Sub Skjul_Top()
'
' Skjul_Top Makro

    ActiveSheet.Unprotect
    Rows("1:11").Select
    Range("E1").Activate
    Selection.EntireRow.Hidden = True
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingCells:=True
End Sub
Avatar billede kim1a Ekspert
07. juli 2021 - 09:39 #1
Du kunne lave dig en variabel som øverst i koden lige fanger hvilken celle du står i, og så sikre at den springer til samme celle igen i slutningen af koden.

Det er fordi select bruges, men jeg har selv ofte problemer med at kode udenom den desværre.

Mit forslag utestet/frit fra hukommelsen
Øverst:
rngAktivCelle = activecell.address
nederst:
rngAktivCelle.select
Avatar billede HHA Professor
07. juli 2021 - 10:12 #2
Hej kim1a,

Den kommer med en fejl på rngAktivCelle.select
Hvad kan det være?
Avatar billede store-morten Ekspert
07. juli 2021 - 10:31 #3
Sub Vis_Top()
'
' Vis_Top Makro

    ActiveSheet.Unprotect
    Rows("1:11").EntireRow.Hidden = False
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingCells:=True
 
End Sub


Sub Skjul_Top()
'
' Skjul_Top Makro

    ActiveSheet.Unprotect
    Rows("1:11").EntireRow.Hidden = True
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingCells:=True
End Sub
Avatar billede kim1a Ekspert
07. juli 2021 - 10:47 #4
Det er vist langt nemmere at bruge store-mortens løsning hvis den virker.

Ellers er min fejl nok noget med at der skal stå:
range(rngAktivCelle).select
Avatar billede store-morten Ekspert
07. juli 2021 - 10:50 #5
#3 ændre ikke på den aktive celle, men hvis du vil have Kim1a forslag med:

Public rngAktivCelle As String

Sub Vis_Top()
'
' Vis_Top Makro
        rngAktivCelle = ActiveCell.Address

    ActiveSheet.Unprotect
    Rows("1:11").EntireRow.Hidden = False
   
        Range(rngAktivCelle).Activate
       
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingCells:=True
 
End Sub


Sub Skjul_Top()
'
' Skjul_Top Makro
        rngAktivCelle = ActiveCell.Address

    ActiveSheet.Unprotect
    Rows("1:11").EntireRow.Hidden = True
   
      Range(rngAktivCelle).Activate
       
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingCells:=True
End Sub
Avatar billede HHA Professor
09. juli 2021 - 07:32 #6
Hejsa store-morten og kim1a,

Den store-morten kom med virker, det samme gør den sidste modificering af din kim1a.

Tak til jer begge for jeres store tjenstvillighed 👍
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