Avatar billede hubertus Seniormester
21. november 2007 - 06:39 Der er 9 kommentarer og
2 løsninger

Protect / unprotect af ark

Jeg har 2 afklarende sprøgsmål:
1. Hvordan beskytter man et ark via VBA, når jeg samtidig vil have sat de variable muligheder, der er for at tillade / hindre brugerne i at gøre noget i arket?

2. Kan man gennemløbe alle sheets i en workbook og få gemt oplysninger om, hvilke ark der er beskyttet og hvilke der ikke er. Formålet er at kunne gennemløbe hele workboken for at ophæv beskyttelsen, udføre noget og sætte beskyttelsen igen.

hvem kan hjælpe?
Avatar billede jlemming Nybegynder
21. november 2007 - 07:06 #1
variabel muligheder:
DrawingObjects:=True, Contents:=True, Scenarios:=True
Det nemmeste er at optage en makro med de muligheder du ønsker,

hvis du ikke ønsker kode på, sletter du bare "kode"

Jeg har tror ikke man kan spørge om arket er lås, men du kan bare låse/ulåse arket flere gange i træk.


for at låse
    For Each Skema In Worksheets
        Skema.Protect "kode"
    Next Skema


modsat vej
Dim Skema As Worksheet
       
For Each Skema In Worksheets
    Skema.Unprotect "kode"
Next Skema
Avatar billede jlemming Nybegynder
21. november 2007 - 07:15 #2
oversigt varibel muligheder:

.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
        :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
        AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
        AllowUsingPivotTables:=True,Password:="kode"
Avatar billede hubertus Seniormester
21. november 2007 - 10:43 #3
Det ser rigtigt godt ud mht. første del af mit spørgsmål. :O)
Med hensyn til protect/unprotect, så har jeg en workbook, hvor nogle af min sheets er protectet og andre ikke. Jeg har derfor brug for at kunne gemme en oplysning om, hvilke sider der er protectet, således at alle sider kan unprotectet via en løkke, jeg kan lave mine ændringer, hvorefter jeg kan protecte de sider som tidligere var beskyttet. Jeg forstiller mig noget om at oplysningen kan lægges ind i en variabel, som efterfølgende kan anvendes, når beskyttelsen sættes igen.
Avatar billede jlemming Nybegynder
21. november 2007 - 10:55 #4
Denne låser arket hvis der stå noget i celle X1

Sub laas()
    For Each skema In Worksheets
        If skema.Range("x1").Value <> Empty Then
            skema.Protect "kode"
        End If
    Next skema
End Sub
Avatar billede jkrons Professor
21. november 2007 - 11:05 #5
DU kan bruge disse to makroer.

Sub Unp()
    For Each s In ActiveWorkbook.Sheets
        If s.ProtectContents = True Then
            s.Unprotect
            s.Range("A1") = "B"
        End If
    Next s
End Sub

Sub Prot()
    For Each s In ActiveWorkbook.Sheets
        If s.Range("a1") = "B" Then
            s.Range("a1").ClearContents
            s.Protect
        End If
    Next
End Sub

Husk at rette A1 til en celle, du ikke bruger.
Avatar billede jkrons Professor
21. november 2007 - 11:05 #6
Og så skal man lige huske at opdatere inden man svarer :-)
Avatar billede jlemming Nybegynder
21. november 2007 - 11:27 #7
jkrons --> fint nok, dit svar er alligvel lidt anderledes, jeg kendte ikke protectcontents.
Avatar billede hubertus Seniormester
21. november 2007 - 21:33 #8
Hej Ikrons - det ser godt ud og virker helt efter hensigten, så opgaven er løst. Hvis I lægger et svar så deler jeg med 30 point til hver. Der var jo to spørgsmål.
Avatar billede jkrons Professor
21. november 2007 - 21:58 #9
Her er et fra mig :-)
Avatar billede hubertus Seniormester
21. november 2007 - 22:01 #10
Hey, hvordan deler jeg egentlig point med 30 til hver?

ps. tak for svarene - de har været til stor hjælp :O)
Avatar billede jlemming Nybegynder
21. november 2007 - 22:20 #11
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