Avatar billede tvc Seniormester
19. august 2008 - 14:30 Der er 3 kommentarer og
1 løsning

Fjern arkbeskyttelse på alle ark (hvis de er paswordbeskyttet)

Hej

Jeg har brug for at kunne fjerne arkbeskyttelsen i alle ark på en gang, så jeg slipper for at gøre dette i hvert enkelt ark.

Jeg har brug for en VBA der først spørger om arkbeskyttelsen skal fjernes fra alle ark eller kun de markerede ark. Derefter skal den bede om passwordet, der skal indtastes i en boks hvorefter der skal trykkes Udfør.

Håber der er en der kan hjælpe mig med dette.

Med venlig hilsen

TVC
Avatar billede jkrons Professor
19. august 2008 - 15:29 #1
Denne kode fjerner beskyttelsen fra alle ark. Du kan evt. modificere denm til også at kunne fjerne fra markerede ark - eller jeg kan gøre det snere i aften.

Koden anmoder om adgangskode til at fjerne beskyttelse. Efterlades ruden tom, svarer det til, at arkene ikke er beskyttet med adgangskode. Virker kun, hvis alle ark er beskyttede med samme adgangskode.

Sub AfbeskytAlle()
    Dim adg As String
    adg = InputBox("Indtast adgangskode")
    On Error GoTo fejl
        For Each s In ActiveWorkbook.Sheets
            s.Unprotect Password:=adg
        Next s
    Exit Sub

fejl:
    If Err.Number = 1004 Then
        MsgBox Err.Description, vbCritical + vbOKOnly
    End If
End Sub
Avatar billede sager Nybegynder
19. august 2008 - 16:24 #2
Der er lidt "ballade" når man har valgt flere ark - og gerne vil unprotect. Så man bliver nødt til at "un-group" og bagefter "re-group"... Det er alt sammen herunder:


Sub unprotect()
Dim vsheet As Worksheet
Dim pw As String
Dim shts As Sheets
    Set shts = ActiveWindow.SelectedSheets
    'Un-group
    ActiveSheet.Select
    answ = MsgBox("Fjern beskyttelsen fra alle ark?" & vbLf & vbLf & "'Ja':  Alle ark" & vbLf & "'Nej': Valgte ark", vbQuestion + vbYesNoCancel)
   
    If answ <> vbCancel Then
        pw = InputBox("Indtast password", "Password")
        If answ = vbYes Then
            For Each vsheet In Sheets
                vsheet.unprotect pw
            Next
        Else
            For Each vsheet In shts
                vsheet.unprotect pw
            Next
        End If
    End If
    'Re-group
    shts.Select
   
End Sub
Avatar billede sager Nybegynder
19. august 2008 - 16:24 #3
Og det skulle selvfølgelig have været et svar.... Det er det her så  :)
Avatar billede tvc Seniormester
19. august 2008 - 20:23 #4
Tak for hjælpen til jer begge.

Sager løser hele opgaven og har dermed fået alle point.

Tak TVC
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