15. november 2012 - 23:53Der er
8 kommentarer og 1 løsning
VBA låser celler.
Hej eksperter!
Jeg har lavet denne fine kode i vba. Men den driller lidt. Men da en del af arket er låst uden brug af denne. så vil den ikke låse cellerne? - så den skal kun låse de celler som der ikke er allerede låst. pånær D1.
Selve koden låser bestemte celler hvis C1 er over tal 24, men den skal kunne låse op for cellerne igen hvis der indtastes i D1 fks. 200 (Men kun de celler som er låst med denne VBA kode)
Sub Test()
If Range("C1").Value > 24 Then 'Aktion - gør noget Dim s As Worksheet For Each s In ActiveWorkbook.Sheets s.protect "password", AllowFiltering:=True
Next If Range("D1").Value > 200 Then For Each s In ActiveWorkbook.Sheets s.unprotect "password"
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Slettet bruger
16. november 2012 - 00:56#1
Har fundet ud af hvordan jeg gør af den ikke låser alle celler. men en der kan nævne hvordan jeg skriver det i koden af den skal kun låse fks. A1:B1000 med koden. selvom de andre celler som sagt allerede er låst... :)
Du kan forberede celler - som låste eller ikke låste: F.eks. - området er ikke forberedt som låst:
Range("A1:B5").Select Selection.Locked = False
Når beskyttelse sættes til er disse celler altså ikke låste
Synes godt om
Slettet bruger
16. november 2012 - 22:24#3
takker!
er det her ikke muligt?
1). A1:B5 skal kunne Låse hvis en vba kode køres via. C1 får en bestemt værdi. 2). C2 Skal aldrig låses. 3). C2 skal kunne låse A1:B5 op igen ved en bestemt værdi. 4). Alle andre celler, altså resten er altid låst.
Syns nemlig ikke jeg kan få lov til af låse bestemte celler, hvis nogle celler er allerede låst i arket.
C2 kan manuelt forberedes "Ej låst" = fjern flueben i Låst, når denne celle altid skal være "åben".
Const værdiForLås = "lås" Const værdiForLåsOp = "lås op" Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$C$1" And Target = værdiForLås Then 'ophæv beskyttelse 'sæt området til forberedt låst 'sæt beskyttelse End If
If Target.Address = "$C$2" And Target = værdiForLåsOp Then 'ophæv beskyttelse ' området A1:B5 sættes til "ej låst" 'sæt beskyttelse End If
End Sub
Synes godt om
1 synes godt om dette
Slettet bruger
18. november 2012 - 17:25#6
Jeg takker for hjælpen supertekst. Læg gerne et svar :)
Har lige et hurtig spørgsmål, Hvis det lyster dig af svare på det :).
For Each s In ActiveWorkbook.Sheets s.protect "password", AllowFiltering:=True
Dette låser alle ark med password. Hvordan får jeg den til af kun låse "ark1"?
Synes godt om
Slettet bruger
19. november 2012 - 22:52#9
Supertekst jeg offer 50 point, for du svare på hvordan jeg kan kun låse det ene ark. hvor med den ikke låser alle ark som denne kode gør.
For Each s In ActiveWorkbook.Sheets s.protect "password", AllowFiltering:=True
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.