16. februar 2011 - 12:22Der er
9 kommentarer og 1 løsning
Forståelse af ark- og cellebeskyttelse
Hej folkens!
Jeg er ved at udvikle et ark, og tænkte jeg ville få opklaret et tilbagevendende problem jeg har vedr. arkbeskyttelse og cellebeskyttelse.
En makro kopierer data fra ark 1 til en liste i ark 2 og sorterer herefter listen. Brugerne skal ikke kunne redigere i ark 2.
Problem: Jeg har prøvet at låse alle cellerne i ark 2, undtaget de celler makroen kopierer til. Derefter har jeg beskyttet ark 2 (tilladt sortering og ikke andet). Dette virker fint første gang jeg kører makroen, men ved sorteringen af listen flyttes låsningen af cellerne med, og derfor får jeg fejlmelding anden gang jeg kører makroen, da de før ulåste celler nu er låste. Hvad gør jeg?
Jeg tror jeg mangler en grundlæggende forståelse for beskyttelse og låsning af celler (synes ikke hjælp-funktionen hjælper så meget). Er der nogen der kan hjælpe med det konkrete problem, og måske henvise til en guide?
Lås alle celler i alle ark som du ikke vil have at brugere skal kunne indtaste data i. I de makroer du benytter indsætter du i begyndelsen noget kode der låser alle ark, og til slut i makroerne noget kode der låser alle ark. Resultat - Kun de celler du har bestemt at brugerne må redigere i kan redigeres, undtagen af din makro.
Her er koderne:
****************************************************** 'Lås alle ark op Dim a As Integer For a = 1 To Sheets.Count Sheets(a).Activate ActiveSheet.Unprotect Password:="kodeord" Next ******************************************************
****************************************************** 'Lås alle ark Dim b As Integer For b = 1 To Sheets.Count Sheets(b).Activate ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="kodeord" Next ******************************************************
De akn naturligvis også laves som selvstændige makroer.
Linje 2 og 3 skulle have været: I de makroer du benytter indsætter du i begyndelsen noget kode der låser alle ark (b)op(/b), og til slut i makroerne noget kode der låser alle ark.
Tak for inputs! Det plejer også at være den måde jeg gør det på, når jeg opgiver at forstå hvorfor jeg ikke kan få det til at virke på den anden måde... Det løser problemet, så tak for det! :o)
Men jeg kunne godt tænke mig alligevel at høre om man kan forhindre at sorteringen tager låsningen af celler med? Man kan selvfølgelig indsætte ekstra kode der låser de rigtige celler efter sorteringen, men kan det ikke gøres anderledes?
Jeg har jo ikke løst dit problem når du gentager makroen. Hvordan sætter du de kopierede data ind? Hvis du indsætter speciel - værdier skulle kun værdierne og ikke cellernes egenskaber komme med. Denne her indsætter kun værdierne: Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Jeg bruger netop indsæt speciel (værdi) i min kode, men det er heller ikke i kopieringen af data at låsningen af cellerne følger med, det er i sorteringen af listen efter at data er kopieret ind i listen..!?
Kan man sortere kun værdier ligesom man kan indsætte kun værdier?
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.