29. august 2015 - 15:20Der er
3 kommentarer og 1 løsning
Beskyt celler, hvori en bestemt formel anvendes
Hej
Jeg sidder med nogle regneark, hvor jeg bruger en add-in til at hente tal fra en database. Det er rimelig smart bortset fra, at systemet er lavet, så jeg direkte fra Excel - uden "advarsel" - overskriver tallet i databasen, hvis jeg kommer til at overskrive en af tallene fra databasen.
Jeg tænker at det kan løses, ved at få fingrene i en kode som,
1) checker alle celler for om funktionen er anvendt i formlen i cellen 2) hvis formlen er anvendt låser den cellen 3) slår ark-bekyttelse til når alle celler er gennemgået 4) Laves som en for each sheet-kode.
Så kan jeg sætte den til at løbe igennem når arket åbner, og dermed minimere risikoen.
Du kan optage det som en makro og (i VBA-editoren) kopiere koden over i Denne projektmappe --> Private Sub Workbook_Open()
OBS Du skal lige være opmærksom på at data fra din database er indlæst INDEN du låser arket og ikke skal opdateres mens du arbejder. Du låser nemlig også for dem.
Et alternativ er at tilknytte dataforbindelse på et ark og så vise (spejle) data på et andet ark som du arbejder på.
Hvis du aldrig opdatere fra Excel kan du eller jeres leverandør sætte dataforbindelsen til IKKE at opdatere databasen.
Hej Kasperth Jeg tænkte at du kunne udføre det manuelt for at se om det virker og derefter optage en makro. Så får du syntaksen og kan rette til.
Med kode kan du låse celler celler op (f.eks. B2)ved at skrive: Range("B2").Locked = False Celler er som udgangspunkt låst. Så hvis alle celler i et ark skal låses skal du kun beskytte arket.
Du kan beskytte ark ved at skrive: Activeworkbook.sheet("navnet").Protect
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.