Zaščita delovnih listov

Pomoč pri delu z MS Excelom
Odgovori
Ana
Prispevkov: 2
Pridružen: Sr Sep 19, 2018 3:03 pm

Zaščita delovnih listov

Odgovor Napisal/-a Ana »

Pozdravljeni,
imam Excelov dokument z veliko delovnimi listi (100) in na delovnih listih so podatki, ki jih lahko vidi le ena določena oseba. Torej, potrebujem zaščito vsakega lista s svojim geslom. Kako?
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Zaščita delovnih listov

Odgovor Napisal/-a admin »

Pozdravljeni,

Excelova zasnova predvideva zaščito pred spreminjanjem podatkov in ne zaščite pred pregledom podatkov.

Tako kot Excel deluje:
  • z zaščito lista dosežete, da uporabnik, ki ne pozna gesla, ne more spremeniti podatkov (na konkretnem listu)
  • z zaščito delovnega zvezka dosežete, da uporabnik, ki ne pozna gesla, ne more spremeniti strukture delovnega zvezka (dodajati, brisat listov...)
S pomočjo skrivanja listov in zaščite na nivoju delovnega zvezka lahko sicer dosežete, da je nek list skrit, vendar je tukaj govora o enem samem geslu - geslu za zaščito delovnega zvezka. Tega kar želite doseči vi, torej imeto 100 uporabnikov s 100 gesli pa Excel ne podpira.

Rešitev je seveda možna, vendar je potrebno napisati VBA makre, ki to naredijo. Ker sklepam, da ne znate programirati v VBA-ju vam tudi ne bom razlagal postopka, vendar kot rečeno, s pomočjo VBA je to možno narediti. Zavedati pa se morate, da tudi v tem primeru zaščita ni 100% saj lahko nekdo, ki se na Excel spozna vedno vidi vse podatke.
lp,
Matjaž Prtenjak
Administrator
Ana
Prispevkov: 2
Pridružen: Sr Sep 19, 2018 3:03 pm

Re: Zaščita delovnih listov

Odgovor Napisal/-a Ana »

Vso to zaščito poznam.
Poznam tudi VBA, ampak, ker sem v časovni stiski, sprašujem, če ima kdo že kje kaj narejenega, ali pa vsaj delno za pomoč.
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Zaščita delovnih listov

Odgovor Napisal/-a admin »

Z VBA pa ni problema:
  1. skrijete vse liste, razen glavnega (z navodili)
  2. zaščitite te te delovni zvezek in s tem uporabniki ne morejo videti listov
  3. uporabnikom prikažete obrazec, kamor vnesejo uporabniško ime in geslo
  4. Če je kombinacija ustrezna, makro odščititi DZ razkrije ustrezen list in zaščiti DZ
  5. ko se DZ zapre spet skrijete vse liste
To je to...
lp,
Matjaž Prtenjak
Administrator
gregag
Prispevkov: 3
Pridružen: Sr Jan 23, 2019 2:18 pm

Re: Zaščita delovnih listov

Odgovor Napisal/-a gregag »

Pozdravljeni,

Potrebujem pomoč pri osveževanju podatkov v excelovem delovnem listu.

V excel-ovem dokumentu imam več delovnih listov katere imam zaščitene z geslom. Uporabljam samo dva delovna lista prvega, kjer vnašam podatke v tabelo in drugega, kjer s pomočjo vrtilne tabele podatke analiziram, ostale delovne liste uporabljam za podatke za spustne sezname v prvem delovnem listu. V prvem delovnem listu uporabljam tudi VBA makre za avtomatsko razvrščanje podatkov. Težava nastane pri osveževanju podatkov na delovnem listu z vrtilno tabelo, če tega zaščitim z geslom se mi podatki ne osvežujejo. Kot rešitev sem že uporabil spodnjo funkcijo, vendar ne deluje. Prosim za namig, kako bi še lahko drugače osvežil podatke..

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="geslo"
ThisWorkbook.RefreshAll
ActiveSheet.Protect Password:="geslo"
End Sub
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Zaščita delovnih listov

Odgovor Napisal/-a admin »

Pozdravljeni,

Vaša funkcija ima več težav.
  1. Vi odščitite aktivni list ko se slednji spremeni, Kako pa e bo spremenil, če pa je zaščiten? Ta funkcija se vam nikoli ne izvede!
  2. Odščitite samo en lisk in želite osvežiti celoten delovni zvezek
Vi morate odščititi list z vrtilno tabelo in osvežiti neko konkretno vrtilno tabelo. Nekaj takšnega:

Koda: Izberi vse

Private Sub OsveziVrtilnoTabelo()
  Worksheets('Analaiza').Unprotect Password:="geslo"
  Worksheets('Analaiza').PivotTables(1).PivotCache.Refresh
  Worksheets('Analaiza').Protect Password:="geslo"
End Sub
In potem to funkcijo pokličete ko želite osvežiti tabelo.
lp,
Matjaž Prtenjak
Administrator
gregag
Prispevkov: 3
Pridružen: Sr Jan 23, 2019 2:18 pm

Re: Zaščita delovnih listov

Odgovor Napisal/-a gregag »

Najprej hvala za odgovor.
Uporabil sem vašo kodo, ki je za moj primer:

Private Sub OsveziVrtilnoTabelo()
Worksheets("Pivot").Unprotect Password:="geslo"
Worksheets("Pivot").PivotTables(1).PivotCache.Refresh
Worksheets("Pivot").Protect Password:="geslo"
End Sub

funkcija deluje, vendar pod pogojem da v VBA editor-ju stisnem run. avtomatsko se mi podatki osvežijo v vrtlni tabeli samo če nimam nastavljenega gesla. Nevem zakaj se koda ne izvede samodejno, v ostalih dokumentih mi podobni ukazi delujejo brez težav.
gregag
Prispevkov: 3
Pridružen: Sr Jan 23, 2019 2:18 pm

Re: Zaščita delovnih listov

Odgovor Napisal/-a gregag »

sem uredil... te tri vrstice kode sem moral dodati k ostali kodi, ki jo uporabljam za razvrščanje podatkov.

Hvala za pomoč...
Odgovori