Skydda formler


Här diskuteras hur vi kan skydda formler från att bli ändrade och eller om vi av olika skäl vill dölja de underliggande beräkningarna för användarna.

Alternativ 1 - Skydda arbetsbladet

Detta förfarande är både enkelt och smidigt, i synnerhet om det redan är en färdig "mall" som ska åtgärdas.

Grundinställningen för samtliga celler i arbetsblad är att de är låsta när arbetsbladskyddet aktiveras. Det gör att vi först måste öppna upp de celler som ska ta emot data:

1. Markera de celler som berörs.

2. Välj kommandot Format | Celler | Fliken Skydd.

3. Bocka av alternativet Låst.
 

I nästa steg ska vi dölja de celler som håller formlerna när arbetsbladskyddet aktiveras.

1. Markera de celler som berörs.

2. Välj kommandot Format | Celler | Fliken Skydd.

3. Bocka för alternativet Dold.


Slutligen aktiveras arbetsbladskyddet genom kommandot:

1. Verktyg | Skydd | Skydda blad...

 

Tips: Om du avser att endast skydda formler mm från dig själv kan du avstå från att ange ett lösenord och endast klicka på OK-knappen i första dialogrutan som visas. Arbetsbladskyddet aktiveras då utan lösenord.

För att ta bort skyddet väljs kommandot:

1. Verktyg | Skydd | Ta bort bladets skydd...

 

Alternativ 2 - Använda namn

Ibland kan alternativ 1 inte vara en bra lösning varför en annan ansats måste till. Här visas en smidig lösning där vi tar hjälp av VBA för att dölja skapade namn och visa namnen vid behov. Namnen i sin tur refererar till formler så istället för att visa formlerna så visas endast namnen.

Följande bild visar exemplet slutresultat:

 

Det första vi gör är att skapa namnet och dess referens:

1. Välj kommandot Infoga | Namn | Definiera...

2. Skriv in namnet SUMMA i dialogrutans fält Definierade namn.

3. Låt namnet referera till formeln =SUMMA(Blad1!$B$1:$B$5).


I nästa steg skriver vi namnet såsom bilden ovan visar.
 

Härnäst ska vi dölja alla skapade namn vilket sker mha av nedanstående procedur. När proceduren har exekverats så visas inte längre namnen i dialogrutan Definiera namn.
 

Sub Dolj_Namn()

   Dim nName As Name  

   For Each nName In ThisWorkbook.Names

      nName.Visible = False

   Next nName

 End Sub

 

Efter att ovanstående procedur har exekverats kan standardmodulen den finns i tas bort med fördel.

För att visa namnen igen kan följande procedur användas:

Sub Visa_Namn()

   Dim nName As Name

    For Each nName In ThisWorkbook.Names

      nName.Visible = True

   Next nName

 End Sub

 

Viktigt att notera är att ovanstående tillvägagångssätt inte skyddar cellerna som håller formlerna. Därför kan det vara önskvärt att även skydda arbetsbladet.

Se också: