Avatar billede lineriber Praktikant
07. februar 2011 - 21:53 Der er 8 kommentarer og
1 løsning

VBA der kan beskytte ark med kode og fjerne arkbeskyttelse

Hejsa

Jeg bruger Excel 2007 engelsk version.

Nogen der kan hjælpe med en VBA/Macro der på én gang kan beskytte 10 faner i en excel workbook.
De skal beskyttes med en kode, fx. KAT.

Og en tilsvarende kode der kan fjerne arkbeskyttelse på de 10 faner.

Hvis jeg optager det som en makro, bliver arkene beskyttet uden kode.

Mvh
Line
Avatar billede Ialocin Novice
07. februar 2011 - 22:14 #1
Hej Lineriber

Jeg har lavet følgende kode i den engelske Excel 2003
Koden ligger under en kommandoknap "cmdLåsSider" på Sheet4 og den låser/låser op for de 3 første sheet.

Du kan selv tilføje ekstra sheet og ændre "pinkode"

Spø´r endelig, hvis du er i tvivl ?

Med venlig hilsen, Nicolai

---


Private Sub cmdLåsSider_Click()
Dim svar As String


svar = InputBox("Indtast pinkode")

'hvis siderne er låst
If Me.cmdLåsSider.Caption = "Lås sider op" Then


    'hvis svaret er: pinkode
    If svar = "pinkode" Then


            For t = 1 To 3
           
                Select Case t
                 
                  Case 1
                        Sheet1.Unprotect ("q")
                   
                    Case 2
                        Sheet2.Unprotect ("q")
                   
                    Case 3
                        Sheet3.Unprotect ("q")
                                                         
                End Select
           
            Next t
       
       
        Me.cmdLåsSider.Caption = "Lås sider"
   
    End If
 
'hvis siderne er låst op
Else

    'hvis svaret er: pinkode
    If svar = "pinkode" Then


            For t = 1 To 3
           
                Select Case t
                   
                    Case 1
                        Sheet1.Protect ("q")
                   
                    Case 2
                        Sheet2.Protect ("q")
                   
                    Case 3
                        Sheet3.Protect ("q")
               
                   
                End Select
           
            Next t
       
       
        Me.cmdLåsSider.Caption = "Lås sider op"

    End If

End If
   

End Sub
Avatar billede duxz Nybegynder
08. februar 2011 - 07:57 #2
Hej,

Jeg bruger en der er mere simpel. Den vælger simpelthen alle ark og beskytter dem med en kode:



Sub protect()
Dim s As Worksheet
For Each s In ActiveWorkbook.Sheets
  s.Protect "password", AllowFiltering:=True
Next
End Sub



Når man så skal låse alle ark op, så:



Sub unprotect()
Dim s As Worksheet
For Each s In ActiveWorkbook.Sheets
  s.unprotect "password", AllowFiltering:=True
Next
End Sub
Avatar billede gnowak Nybegynder
08. februar 2011 - 08:55 #3
Jeg har lavet en samling smarte VBA koder (GrN_Utils). Der findes subrutiner hvor man låser alle ark, men stadig kan redigere celler, der har samme baggrundsfarve, som den markerede celle.

Du kan finde samlingen på http://moneynet.dk

VH. GrN.dk
Avatar billede lineriber Praktikant
08. februar 2011 - 09:28 #4
Nicolai (lalocin):
hvis jeg kopierer din VBA ind, så får jeg følgende fejl hvor "Me" bliver markeret: Compile error: Invalid use of Me keyword".
Jeg bliver jo excel 2007, så jeg ved ikke om det kan skyldes det?


duxz:
Protect virker fint.
Men jeg får fejl på unprotect koden. ".unprotect" bliver markeret og fejlmeddelelsen er "Compile error: weon number of arguments or invalid property asignment"
Avatar billede duxz Nybegynder
08. februar 2011 - 10:07 #5
Aaaaaarh undskyld det skulle rettelig have været:

Sub unprotecting()
Dim s As Worksheet
For Each s In ActiveWorkbook.Sheets
  s.Unprotect "password"
Next
End Sub
Avatar billede duxz Nybegynder
08. februar 2011 - 10:10 #6
Du ændrer så "password" til det kode ord du gerne vil bruge.

Jeg har haft enorm god brug af dette lille stykke kode ifm. mit arbejde, hvor jeg bruger store rapporterings filer med celler der er låst for indtastning.....jeg tør ikke tænke på hvor mange mande dage jeg har sparet i stedet for at sidde at beskytte hvert enkelt ark manuelt... :)
Avatar billede lineriber Praktikant
08. februar 2011 - 10:20 #7
Så virker det.
Super godt kode, den vil jeg også få meget brug for i mit arbejde med store regneark med mange formler der skal beskyttes.
Jeg vil kombinere den med en fode hvor jeg også skal skjule en masse faner. En kode der protect'er og hide'er faner, og en kode der unhide'er og unprotect'er faner.

Mange tak for hjælpen duxz - smider du et svar?
Avatar billede Ialocin Novice
08. februar 2011 - 11:43 #8
Hej lineriber

Med hensyn til "Me" error i #4

Så udskift blot "Me" med navnet på den pågældende ark, hvorpå knappen bor.

Med venlig hilsen, Nicolai
Avatar billede duxz Nybegynder
08. februar 2011 - 13:28 #9
Takker!
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