..|| Blog || Produkti/Storitve || MExcel || MDodatki || 300 nasvetov ||..

Zaščita delovnih listov

Pomoč pri delu z MS Excelom

Zaščita delovnih listov

OdgovorNapisal/-a Ana » Sr sep 19, 2018 4:15 pm

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?
Ana
 
Prispevkov: 2
Pridružen: Sr sep 19, 2018 3:03 pm



Matjazev.NET
 

Re: Zaščita delovnih listov

OdgovorNapisal/-a admin » Sr sep 19, 2018 6:38 pm

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
admin
Site Admin
 
Prispevkov: 3512
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Zaščita delovnih listov

OdgovorNapisal/-a Ana » Če sep 20, 2018 7:41 am

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č.
Ana
 
Prispevkov: 2
Pridružen: Sr sep 19, 2018 3:03 pm

Re: Zaščita delovnih listov

OdgovorNapisal/-a admin » Če sep 20, 2018 9:33 am

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
admin
Site Admin
 
Prispevkov: 3512
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Zaščita delovnih listov

OdgovorNapisal/-a gregag » Ne feb 10, 2019 11:42 am

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
gregag
 
Prispevkov: 3
Pridružen: Sr jan 23, 2019 2:18 pm

Re: Zaščita delovnih listov

OdgovorNapisal/-a admin » Ne feb 10, 2019 12:17 pm

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
admin
Site Admin
 
Prispevkov: 3512
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Zaščita delovnih listov

OdgovorNapisal/-a gregag » Ne feb 10, 2019 1:56 pm

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

OdgovorNapisal/-a gregag » Ne feb 10, 2019 2:16 pm

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

Hvala za pomoč...
gregag
 
Prispevkov: 3
Pridružen: Sr jan 23, 2019 2:18 pm


Vrni se na Excel

Kdo je prisoten

Po forumu brska: 0 registriranih uporabnikov in 1 gost