Avatar billede Sylwia Novice
09. august 2017 - 13:03 Der er 6 kommentarer og
2 løsninger

Bevar macro funktionalitet i beskyttet ark

Hej alle samme

Jeg har 12 macro'er i et faneblad, hvis eneste funktion er at skjule/vise rækker dvs. hvis man sætter flueben i afkrydsningsboksen, folder rækkerne sig ud, således at man kan indtaste data, klikker man på fluebenet igen, skjuler rækkerne sig, således at det kun er summen af de indtastede data som er synlige. 

Problemet er, at filen skal "ud i marken" for at blive beriget med data. Derfor vil jeg meget gerne beskytte arket. Men beskyttelsen gør, at macro'erne holder op med at virke.

Er der nogen som ved, om det er muligt at beskytte arket og holde macro'erne "i live"?

Enhver form hjælp vil være dybt værdsat.

Mvh. Sylwia
Avatar billede Mikael Ekspert
09. august 2017 - 13:12 #1
Har selv sloges med dette problem.. Og det er ikke løst.

D.v.s.at em macro sagtens kan oplåse og igen låse et ark. Og macro´en gennemføres som forventet.

MEN. Er arket låst/beskyttet med "kode" så går det galt.. Hmm

Ps!! Jeg har ingen løsning ;)
Avatar billede Jan Hansen Ekspert
09. august 2017 - 13:14 #2
Hvad med at ligge en Unprotect i starten af macro'erne og en protect i slutningen?

Jan
Avatar billede ebea Ekspert
09. august 2017 - 13:15 #3
kan du ikke bruge følgende, som låser arket op, og låser igen, efter Macro er kørt!
ActiveSheet.Unprotect password:="dit password"
  Udfør Macroen, og derefter:
ActiveSheet.Protect password:="dit password"
Avatar billede Sylwia Novice
09. august 2017 - 13:48 #4
Mange tak for inputs :)

Jeg har kopieret "ebea's" kode ind i min egen og har fået en delvis løsning ud af det.

Dvs.
1) jeg beskytter arket
2) macro'en kan afspilles dvs. rækkerne foldes ud (arket er stadig beskyttet)
2) macro'en afspilles igen dvs. rækkerne folder sig sammen men arket er nu ubeskyttet.

Min kode ser nu ud som nedenfor. 

Private Sub Cb1_Click()
ActiveSheet.Unprotect Password:=" "

If Me.Cb1.Value = True Then

    Rows("32:83").Select
    Selection.EntireRow.Hidden = True
Else
    Rows("32:83").Select
    Selection.EntireRow.Hidden = False
ActiveSheet.Protect Password:=" "
End If
End Sub
Avatar billede Jan Hansen Ekspert
09. august 2017 - 13:58 #5
flyt ActiveSheet.Protect Password:=" " til efter "end if"

Jan
Avatar billede ebea Ekspert
09. august 2017 - 14:01 #6
#4 -  Dit Ark er jo ikke ubeskyttet, hvis du indsætter det password du ønsker at bruge!
Så låses det, når Macroen er færdig!

F.eks.
ActiveSheet.Protect Password:="ditpassword "
Avatar billede Sylwia Novice
09. august 2017 - 15:03 #7
Nu virker det! :)

Med Ebea's kode og Jan's korrekte placering, så virker det hele som det skal :).

Tusinde tak for hjælpen til jer alle :)

Den "magiske" kode ses nedenfor :).

Private Sub Cb1_Click()
ActiveSheet.Unprotect Password:=" "
If Me.Cb1.Value = True Then

    Rows("36:87").Select
    Selection.EntireRow.Hidden = True
Else
    Rows("36:87").Select
    Selection.EntireRow.Hidden = False
   
End If
ActiveSheet.Protect Password:=" "
End Sub
Avatar billede ebea Ekspert
09. august 2017 - 15:16 #8
#7  - Så kom du videre! ;-)
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