< návrat zpět

MS Excel


Téma: Zamknout buňku rss

Zaslal/a 31.8.2010 14:52

Nejde nějak zamknout buňku nebo buňky tak, aby se při pokusu zapsat něco do těchto buněk muselo do formuláře nebo někam zadat heslo? NECHCI POUŽÍT ZAMKNUTÍ CELÉHO LISTU A PAK POVOLIT OBLASTI ATD.,PROTOŽE V TOMTO PŘÍPADĚ NEFUNGUJOU KONTINGENČNÍ TABULKY. Dík

Zaslat odpověď >

Strana:  1 2   další »
#002339
Jeza.m
Ani bych to tak nenazval zámkem, ale jen makrem které tě na vybrané buňky bez hesla nepustí.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim heslo As String
heslo = "heslo"

Select Case Target.Address
Case "$B$4", "$C$4", "$D$4"
If InputBox("Zadej heslo pro zápis do této buňky:", "Ověření") <> heslo Then
Cells(ActiveCell.Row, ActiveCell.Column + 1).Activate
End If
End Select
End Sub

M@citovat
#006047
avatar
dobrý den, potřebovala bych poradit s kódem na něco podobného, co se zde řešilo.
k mému souboru bude mít přístup více uživatelů, každý z nich bude do souboru přispívat. Daný uživatel může upravovat svoje řádky, ale řádky ostatních uživatelů pro něj musí zůstat uzamčené.
Řešila bych to tak, že bych v kódu definovala proměnnou (=oblast buněk, pro jejiž změnu bude nadefinované danému uživateli známé heslo).
S čím si ale nevím rady je to, jak dostat kód pro Povolení uživatelům úpravy oblastí (v excelu 2007 karta Revize ) a do něj dostat ty definované oblasti (tedy proměnné).
Pro ilustraci přikládám tabulku s ručně zadanými povoleními.citovat
#006048
avatar
Omoluvám se, ještě příloha 2
Příloha: zip6048_zkouska.zip (12kB, staženo 32x)
citovat
icon #006049
Poki
co takto:
ActiveSheet.Protection.AllowEditRanges.Add Title:="B", Range:=Range("A7:C7"), Password:="becko"citovat
#006050
avatar
Děkuji, Poki, supr nápad, bohužel mi to nefachá, zkoušela jsem to zakomponovat do makra, které v souboru spouštím i samostatně do private sub a ani v jednom nic. Zkusil bys mi to hodit do toho souborku pls? Děkujicitovat
icon #006051
Poki
Nevim, jak to pouzivas, ale staci nadefinovat vsechny oblasti (a hesla k nim) a pak zamknout list.

Kdyz pak bude nejaky uzivatel chtit upravit bunku, objevi se mu automaticky vyzva k zadani hesla a po jeho spravnem vyplneni mu bude uprava bunek oblasti umoznena...
Takze vubec neni potreba makro, ktere ma v modulu List1 - ono je to i bezpecnejsi, protoze pokud nekdo nepovoli makra, tak by procedura se zmenou vyberu nefungovala...
staci?citovat
#006052
avatar
Mi bohužel nestačí jen si \"na tvrdo\" pojmenovat oblasti v excelu, protože uživatelé budou soubor aktualizovat, doplňovat do něj nové řádky a s tím se musí měnit i oblast, která bude zamykána. Proto jsem tuto oblast pro heslo chtěla mít nadefinovanou jako proměnnou v kódu. Pak oblast buněk chráněná daným heslem = proměnné. ještě na to zkusím mkrnout, kdyby tě něco napadlo, budu ráda ... díkycitovat
icon #006053
Poki
No, nejake moznosti by byly, ale chci zdruraznit, ze Excel neni na nejaky ochrany staveny (pokud se nekdo do nej bude chtit dostat, zvladne to vzdycky).
Takoveto ochrany maji spis zabranit nechtenym zasahum uzivatelu.
Pokud nepredpokladas, ze by ti chtel soubor nekdo "hacknout", pak to nejak pujde - problem je v tom pridavani radku, protoze by se s nim musel menit i kod (leda, ze by v tech vkladanych datech byl nejaky algoritmus, ktera data pridelit kteremu uzivateli (resp. heslu)...
Ï tak to ale bude na makro, ktere pokud uzivatel nepovoli, tak je to v haji...citovat
#006054
avatar
Je to přesně tak, jak píšeš, je to jen z důvodu nechtěných zásahů, nikomu primárně nejde o to ten soubor ničit, spíš aby omylem jeden nenarušil data druhému.
Ke tvé druhé poznámce - moje úvaha byla taková, že každý uživatel při vyplňování nového řádku vybere v daném sloupci příznak, že řádek je jeho. Před uložením by pak např. tlačítkem spustil makro, které by si řádky seřadilo podle toho příznaku a dle toho označilo oblasti. Tyto oblasti by definovaly proměnné, tedy oblasti, které mají být zajištěny daným heslem ...
Uživatel by pak samozřejmě musel souhlasit s tím, že bude muset dodržovat některá pravidla, pokud se souborem bude chtít pracovat. Jinak to asi vyřešit nelze.citovat
icon #006055
Poki
Pokud by se dalo zajistit, ze uzivatel povoli makra, dalo by se vyuzit udalosti selection_change, jaks to puvodne mela s tim, ze kazdy uzivatel by mel prirazenou hodnoty ze sloupce A (firma) - tato hodnota by se pri zmene vyberu porovnala s uzivatelskym jmenem (application.username) a rozhodla by, jestli tento uzivatel ma pristup k vybranemu radku ci nikoliv (dovolila mu upravy nebo ne)

To je takovej prvni rychlej napad...citovat

Strana:  1 2   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje