Avatar billede Slettet bruger
20. november 2012 - 16:28 Der er 19 kommentarer og
1 løsning

VBA lås kun et ark.

Da jeg ikke har kunne finde ud af hvordan jeg kun låser et ark.
Søger jeg hjælp.
Pt. Bruger jeg denne del.

For Each s In ActiveWorkbook.Sheets
s.protect "password", AllowFiltering:=True

Men hvordan kan jeg som sagt kun låse et ark, og ikke alle ark,
Tænkte på noget ala man indtaster hvilket ark der skal låse,
Eller en ligne der gør af man ikke låser hele ark2, ark3 osv.

Takker på forhånd!
Avatar billede store-morten Ekspert
20. november 2012 - 16:48 #1
Måske:

ActiveWorkbook.Sheets(1).Protect "password", AllowFiltering:=True
Avatar billede Slettet bruger
20. november 2012 - 21:02 #2
Får fejl. run-time error '9': subscript out of range.

VBA koden som jeg bruger pt.
men vil have lavet om så den kun låser et ark.

Const værdiForLås = "lås"
Const værdiForLåsOp = "lås op"
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$T$1" And Target = værdiForLås Then
   
        'ophæv beskyttelse
        Dim s As Worksheet
        For Each s In ActiveWorkbook.Sheets
        s.Unprotect "password"
    Next
        'sæt området til forberedt låst
        Range("K5").Select
        Selection.Locked = True
        Range("I5").Select
        Selection.Locked = True
        Range("A12:E15").Select
        Selection.Locked = True
        Range("A18:C45").Select
        Selection.Locked = True
        Range("D46:D48").Select
        Selection.Locked = True
        Range("E18:E48").Select
        Selection.Locked = True
    End If
        'sæt beskyttelse
        For Each s In ActiveWorkbook.Sheets
        s.Protect "password", AllowFiltering:=True
    Next
   
    If Target.Address = "$T$2" And Target = værdiForLåsOp Then
   
        'ophæv beskyttelse
        For Each s In ActiveWorkbook.Sheets
        s.Unprotect "password"
    Next
        'området A1:B5 sættes til "ej låst"
        Range("K5").Select
        Selection.Locked = False
        Range("I5").Select
        Selection.Locked = False
        Range("A12:E15").Select
        Selection.Locked = False
        Range("A18:C45").Select
        Selection.Locked = False
        Range("D46:D48").Select
        Selection.Locked = False
        Range("E18:E48").Select
        Selection.Locked = False
    End If
        'sæt beskyttelse
        For Each s In ActiveWorkbook.Sheets
        s.Protect "password", AllowFiltering:=True
    Next

End Sub
Avatar billede store-morten Ekspert
20. november 2012 - 21:44 #3
Const værdiForLås = "lås"
Const værdiForLåsOp = "lås op"
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$T$1" And Target = værdiForLås Then
   
        'ophæv beskyttelse
    ActiveWorkbook.Sheets(1).Unprotect "password"
   
        'sæt området til forberedt låst
        Range("K5").Locked = True
        Range("I5").Locked = True
        Range("A12:E15").Locked = True
        Range("A18:C45").Locked = True
        Range("D46:D48").Locked = True
        Range("E18:E48").Locked = True
    End If
        'sæt beskyttelse
    ActiveWorkbook.Sheets(1).Protect "password", AllowFiltering:=True
   
    If Target.Address = "$T$2" And Target = værdiForLåsOp Then
   
        'ophæv beskyttelse
    ActiveWorkbook.Sheets(1).Unprotect "password"
   
        'området A1:B5 sættes til "ej låst"
        Range("K5").Locked = False
        Range("I5").Locked = False
        Range("A12:E15").Locked = False
        Range("A18:C45").Locked = False
        Range("D46:D48").Locked = False
        Range("E18:E48").Locked = False
    End If
        'sæt beskyttelse
  ActiveWorkbook.Sheets(1).Protect "password", AllowFiltering:=True

End Sub
Avatar billede Slettet bruger
20. november 2012 - 22:51 #4
Får fejlen.

Run-time error '1004':
kan ikke angive egebskaben lucked for klassen range.
Avatar billede store-morten Ekspert
20. november 2012 - 22:55 #5
Denne virker hos mig
http://gupl.dk/687574/
Avatar billede Slettet bruger
20. november 2012 - 23:11 #6
Den virker os her.
Men ville nu gerne have to fælter man skrev i for af låse og låse op.
Men må vise sig når jeg lige får det puttet i det rigtige ark, om et felt er nok.
Men smid et svar & tak for hjælpen,

forresten, må jeg høre dig om noget?
Avatar billede store-morten Ekspert
20. november 2012 - 23:20 #7
Jepp
Avatar billede Slettet bruger
20. november 2012 - 23:24 #8
Hvis man fks. vil have flere VBA/Makro koder i thisworkbook, hvordan forbinder man dem så?
Avatar billede store-morten Ekspert
20. november 2012 - 23:27 #9
hvordan forbinde?

Har du et eksempel?
Avatar billede Slettet bruger
20. november 2012 - 23:33 #10
Jeg har fundet en der har kodet en log & en autoluk.
De begge skal i thisworkbook.

Men når jeg insætter dem, meddler den fejl:
ambiguous name detected: workbook open

Undskylder på forhånd af jeg er dårlig til VBA/Makro & english :).

Kan ikke lige lure det,
Avatar billede store-morten Ekspert
20. november 2012 - 23:37 #11
Så er der sikkert 2 "makroer" der hedder det samme: workbook open
Avatar billede store-morten Ekspert
20. november 2012 - 23:43 #12
"Men ville nu gerne have to fælter man skrev i for af låse og låse op"
Const værdiForLås = "lås"
Const værdiForLåsOp = "lås op"
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("$T$1:$T$2")) Is Nothing Then
    If Target.Address = "$T$1" And Target = værdiForLås Then
    Sætlås = True
    End If
    If Target.Address = "$T$2" And Target = værdiForLåsOp Then
    Sætlås = False
    End If
   
        'ophæv beskyttelse
        Sheets(1).Unprotect "password"
       
        'sæt området til låst/ej låst
        Range("K5, I5").Locked = Sætlås
        Range("A12:E15").Locked = Sætlås
        Range("A18:C45").Locked = Sætlås
        Range("D46:D48").Locked = Sætlås
        Range("E18:E48").Locked = Sætlås
     
        'sæt beskyttelse
        Sheets(1).Protect "password", AllowFiltering:=True
End If
End Sub
Avatar billede Slettet bruger
20. november 2012 - 23:47 #13
Hvis jeg så ændre navnet med bare et 1 til efter.
Så excel ikke den ene?
Avatar billede Slettet bruger
20. november 2012 - 23:51 #14
Er fixede nu tror jeg :),
Men jeg bukker pænt og siger tak for hjælpen!
Avatar billede store-morten Ekspert
20. november 2012 - 23:53 #15
Nej, ikke når det er "workbook open" denne køres når Excel åbnes.

Der kan kun være denne ene "workbook open"
"workbook open1" vil ikke virke.
Avatar billede Slettet bruger
20. november 2012 - 23:56 #16
Nej, den var der ikke der, den vil kun køre en vba/makro når jeg sætter dem ind,
Avatar billede Slettet bruger
20. november 2012 - 23:57 #17
damn,
Avatar billede Slettet bruger
20. november 2012 - 23:59 #18
Hvad kan man så ellers gøre? nu når de er lavet med begge workbook_open?
Avatar billede store-morten Ekspert
21. november 2012 - 20:34 #19
Prøv om du kan putte dem i samme workbook_open

Før:
workbook_open
"log kode"
End sub

workbook_open
"autoluk kode"
End sub

Efter:
workbook_open
"log kode"

"autoluk kode"
End sub
Avatar billede Slettet bruger
21. november 2012 - 22:56 #20
er prøvet, de skal nok mere kodes helt om hvis de skal køres i samme workbook_open :p
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