01. februar 2003 - 16:58Der er
33 kommentarer og 1 løsning
Låse ark
Jeg har et regneark med 100 arksider. Jeg vil gerne sikre/låse hvert ark. Det kan godt lade sig gøre hvis jeg låser et ark ad gangen men det tager jo frygtelig lang tid... Er der nogen der kender en metode til at låse alle 100 ark på en gang????
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Her er en makro, der beskytter alle ark i et hug. Der hor der står BAK indsætter du dit eget password
Sub protecting() Dim s As Worksheet For Each s In ActiveWorkbook.Sheets s.Protect "BAK" Next End Sub
Denne makro vil fjerne beskyttelsen igen fra alle ark Sub unprotecting() Dim s As Worksheet For Each s In ActiveWorkbook.Sheets s.Unprotect "BAK" Next End Sub
Nu skal alt på arkene ikke være låst, det skal være muligt for brugeren at taste ind i de felter der er beregnet til det. Hvordan gør jeg det? Normalt når det drejer sig om 1 ark marker jeg de felter der skal være åbne og derefter vælger jeg "Funktioner" og dernæst "beskyttelse". Skal jeg markere alle 100 ark og på samme måde markere de felter der skal være åbne. Hvad med den kode i har beskrevet, hvad skal jeg gøre med den?? I må bære over med mig men jeg er (som i nok har opdaget) ikke nogen superbruger...
Det er i formater celler beskyttelse di skal gøre det med fluebenet.
Alle celler er standard markeret med låst. Derfor skal du låse alle op ved at fjerne fluebenet,og derefter markere alle celler du vil beskytte, og sæt det omtalte flueben i låst.
Det er helt rigtigt. Du markerer bare alle 100 ark, stiller dig på en celle og klikker på Formater / Celler. Her finder du fanebladet Beskyttelse og fjerner fluebenet i Låst. Så forbliver disse celler ubeskyttede, når du efterfølgende beskytter arkene. NB. dette skal gøres inden du låser arkene.
mht. makroen trykker du på Alt-F11 for at komme til makroeditoren. Vælg Insert->Module og i det modul paster du overnævnte kode ind. tryk så Alt-F11 igen for at komme tilbage til Excel.
Jeg skal lige sige at jeg bruger excel 97. Normalt låser jeg et ark ved at marker de felter der skal være åbne og fjerner fluebenet i låst.. din beskrivelse er lige modsat men virker ligegodt. Kør macro hvad mener du med det???
Jeg mener at koden du har fået, bliver til en makro, når den bliver indsat i et modul. dvs at du så kan finde makroen Protecting i Funktioner-Makro-Makroer og vælg Kør. Så bliver alle ark beskyttet.
Nu har jeg markeret de felter der skal være åbne, (det er de samme felter i alle 100 ark) så trykker jeg ALT+F11 vælger "indsæt" vælger "modul" Kopier denne formel ind : Sub protecting() Dim s As Worksheet For Each s In ActiveWorkbook.Sheets s.Protect "BL" Next End Sub Hvad så nu...? skal det gemmes og hvordan aktiver man denne kode?
Nu begynder der at ske noget... men den gør det ikke rigtigt endnu. Der er 110 ark hvoraf de 100 ark er identiske og det er de 100 ark der skal låses. Når jeg bruger den før omtalte formel så låses alle ark. Hvad gør jeg?
Sub protecting() Sub protecting() For Each Ws In Worksheets If Left(Ws.Name, 3) = "Ark" Then Ws.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End If Next Ws End Sub
Denne makro låser alle ark der begynder med "Ark" og ikke de andre. Den sætter ingen password
Sub protecting() For Each Ws In Worksheets If Left(Ws.Name, 3) = "Ark" Then Ws.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End If Next Ws End Sub
Sub Unprotecting() For Each Ws In Worksheets Ws.Unprotect Next Ws End Sub
her er begge to
den sidste fra bak, så husk at give ham point også.
Det driller altså stadig... Når jeg forsøger at låse de 100 ark (jeg har markeret alle 100 ark) får jeg denne meddelse: Kørselsfejl 1004 metoden protect for klassen worksheet mislykkes. Klikker jeg på fejlfind så står der dette. Sub protecting() For Each Ws In Worksheets If Left(Ws.Name, 3) = "Ark" Then Ws.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End If Next Ws End Sub I ovennævnte kode er Linje 4 er malet gul (hvad det så end betyder) Hvad er problemet , (ud over fejl 40:)
Kabbaks kode skal kunne køre uden at du markerer de 100 ark. den går netop ind og kigger på alle ark for at kun at låse de ark hvor de første 3 bogstaver er "Ark". Så prøv uden at markere disse ark.
Hvis du stadig får fejl så prøv dette i stedet, den anden var fra Excel 2000, så det kan være at 97 ikke forstår " DrawingObjects:=True, Contents:=True, Scenarios:=True"
Sub protecting() For Each Ws In Worksheets If Left(Ws.Name, 3) = "Ark" Then Ws.Protect End If Next Ws End Sub
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.