20. november 2012 - 16:28Der 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.
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
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
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,
"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
er prøvet, de skal nok mere kodes helt om hvis de skal køres i samme workbook_open :p
Synes godt om
Ny brugerNybegynder
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.