Avatar billede kasperth Juniormester
29. august 2015 - 15:20 Der 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.
31. august 2015 - 14:54 #1
Hej Kasperth
Du beskytter en celle ved at
# FJERNE beskyttelsen i de celler der må skrives i
# Låse hele arket

Fjern beskyttelsen i cellen:
Vælg Cellen --> Tryk CTRL+1 (formater celle) --> Vælg fanen Beskyttelse --> Fjern Hak i Lås

Beskyt ark:
Vælg fanen Hjem --> menuknappen Formater --> Beskyt ark

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.

Med venlig hilsen

Birthe Lauridsen
Praktisk IT
Avatar billede kasperth Juniormester
01. september 2015 - 11:08 #2
Hej Birthe

Tak for indlægget - og især de sidste tips.

Det jeg sgr er dog som angivet en kode, som kan gennemløbe arket og låse de specifikke celler, så jeg netop ikke selv skal rundt og gøre det.

Det vil især i forbindelse med udviklingen af nye rapporter kunne spare tid, da der er mange dataudtræk.
03. september 2015 - 15:31 #3
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


Med venlig hilsen

Birthe Lauridsen
Praktisk IT
Avatar billede kasperth Juniormester
20. april 2017 - 14:20 #4
ej løst
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester