< návrat zpět

MS Excel


Téma: Zámek buňky rss

Zaslal/a 17.7.2020 15:35

Dobrý den,
Bohužel ve VBA vůbec neumím a řešení by mi velmi pomohlo.

Zámek je závislý na číselnících, viz příloha.
1) oblast A2:K10 musí být přístupná k editaci, s tím, že v části A2:F10 je možné vybírat pouze hodnoty z číselníků.
2) buňka v sloupci L zůstává uamčena do té doby, dokud není vyplněna oblast A2:F10, kde povolené hodnoty k odemčení zámku jsou pouze žlutě označené buňky z číselníku, viz příloha.
3) zámek musí fungovat vždy k příslušnému řádku. Pokud předcházející řádky mají hodnoty prázdné, nesmí to ovlivnit zámek v řádku, kde jsou hodnoty vyplněné správně.
4) Poslední věc je, že pokud by došlo k náhodnému výmazu hodnoty v oblasti A2:F10, tak se buňka ve sloupci L musí vymazat a znovu zamknout.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

Set KeyCells = Range("A1:F10")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then Exit Sub

ActiveSheet.Unprotect

If Target = "" Then

Target.Offset(, 11).Locked = True

Else

Target.Offset(, 11).Locked = False

End If

ActiveSheet.Protect

End Sub

Omlouvám se, že obtěžuji, ale moc by mi toto řešení pomohlo. Děkuji.

Příloha: rar47358_mf_ciselniky.rar (15kB, staženo 21x)
Zaslat odpověď >

Strana:  « předchozí  1 2 3   další »
#047412
avatar
Dobrý den,
Prosím opět o pomoc.

1) Nyní bych potřeboval zadávat data do polí $U$2:$AD$501 s tím, že data ve sloupcích U:Z jsou povinná a jsou závislá na žlutých buňkách v listu číselníky.
Zdrojový kód VBA jsem upravil pro výše uvedenou oblast, ale z nějakého důvodu mi přestal kontrolovat, zda data z číselníku jsou žlutá (pravdivá pro odemčení zámku). Nyní je zámek závislý na tom, že buňky U:Z jsou vyplněné.

2) Dále bych potřeboval rozšířit vliv zámku i na sloupec AA, kam se bude zadávat nějaká hodnota (buňka nesmí zůstat prázdná; pokud zůstane, AE buňku musí zůstat zamčená).

3) Je možné to celé nastavit tak, aby se zamykaly pouze buňky v AE a ne celý list?

Děkuji za ochotu i pomoc.
Příloha: rar47412_mf_ciselniky-kontrola-zamku.rar (30kB, staženo 16x)
citovat
#047414
avatar
1) proměnná i se musí nastavit na 21 (i = 21), což je sloupec U. Původní verze byla od 1 sloupce.

3)Vždy se zamkne celý list. Buňky, které nechci zamknout, tak u nich přes Formát změním zámek.
Tudíž, jestli chcete zamykat jen některé buňky, označte si celý list (Ctrl+A) a nastavte u nich, aby se nezamykaly. Pak si označte jen ty buňky, které chcete zamykat a ty nastavte na zamknuto. Po zamčení listu se uzamknou jen tyto buňky.

2) pozdějicitovat
#047415
avatar
2)
Mám vyplněné U:AA, všechny data jsou VIP a proto je AE odemčené. Smažu obsah AA. Co udělá buňka AE:
a) zamkne se
b) smaže se a zamknecitovat
#047418
avatar
1) Opraveno (místo i=1 musí být i=21)

2) AE se odemkne jen když je U:Z vyplněno VIP hodnotou a v AA je cokoliv

3) Všechny buňky kromě sloupce AE jsou odemčeny. Tzn. i při zamknutém listu se bude moci psát do kterékoliv buňky (Mimo celého sloupce AE).
Příloha: zip47418_mf_ciselniky-kontrola-zamku.zip (34kB, staženo 23x)
citovat
#047427
avatar
Jirko, moc děkuji. Ještě jeden malý detail, ale podstatný. V záhlaví by měl fungovat filtr a nejde tam vložit, dokud neodemknu list. Jakmile nastavím možnost filtru a začnu opět psát data, tak se první řádek pro filtr zamkne a nejde filtr používat 7 . Vím, že to jde obejít možností zamknout list a naklikat povolit automatický filtr, ale to bych tam musel dát heslo. Tabulka s filtrem musí být přístupna uživatelům bez hesla.
Event. bych potřeboval zamknout při vkládání dat oblast A2:T501.

Jiří497 napsal/a:

1) Opraveno (místo i=1 musí být i=21)

2) AE se odemkne jen když je U:Z vyplněno VIP hodnotou a v AA je cokoliv

3) Všechny buňky kromě sloupce AE jsou odemčeny. Tzn. i při zamknutém listu se bude moci psát do kterékoliv buňky (Mimo celého sloupce AE).Příloha: 47418_mf_ciselniky-kontrola-zamku.zip (34kB, staženo 3x)
citovat
#047431
avatar
Už to mám.
Stačilo jen na chvíli vymazat celý zdrojový kód, upravit si tabulku pro filtrování a pak celý VBA kód znovu nahrát + ještě doplnit do závěru AllowFiltering:=True.

ActiveSheet.Protect AllowFiltering:=True
Application.EnableEvents = True
End Sub
1citovat
#047665
avatar
Nová verze: pokud se do buňky ve sloupci U zapíše text, tak se uzamkne a nejde ji změnit (samozřejmě, že po odemčení listu půjde).

Musel jsem při zamčení listu nastavit, aby nebylo možno vybrat zamčené buňky, protože jinak šlo změnit i zamčenou buňku. Nepřišel jsem na to čím to je. Jestli to souvisí s dalším kódem nebo jestli je to kvůli "Ověření dat" na buňce... netuším. Zkušenější asi budou vědět.
Příloha: zip47665_mf_ciselniky-kontrola-zamku2.zip (32kB, staženo 19x)
citovat
#047669
avatar
Jirko, moc děkuji za řešení. 1
Už snad jen poslední věc. Tím, že je list uzamčen, není možné se šipkami posouvat vpravo a vlevo po celém sešitě. Uživatel má možnost se posouvat jen ve zpřístupněných žlutých polích. To, že je část A-T uzamčena se hodí, ale potřebuji, aby se uživatel měl možnost po řádku posouvat i na začátek souboru, např. do A1, atd... 4
Předpokládám, že je to jen nějaká drobnost, ale nevím, kde.

Jiří497 napsal/a:

Nová verze: pokud se do buňky ve sloupci U zapíše text, tak se uzamkne a nejde ji změnit (samozřejmě, že po odemčení listu půjde).

Musel jsem při zamčení listu nastavit, aby nebylo možno vybrat zamčené buňky, protože jinak šlo změnit i zamčenou buňku. Nepřišel jsem na to čím to je. Jestli to souvisí s dalším kódem nebo jestli je to kvůli "Ověření dat" na buňce... netuším. Zkušenější asi budou vědět.Příloha: 47665_mf_ciselniky-kontrola-zamku2.zip (32kB, staženo 2x)
citovat
#047670
avatar
V předchozím příspěvku jsi psal: Event. bych potřeboval zamknout při vkládání dat oblast A2:T501. Takže změna?
Takže:
1. Odemknout list
2. Označit oblast, která má být přístupná ( např. A1:B501)
3. Formát buněk, zámek
4. Zrušit zaškrtnutí "uzamknout"

Tam kde je zámek, se po uzamknutí listu nedá dostatcitovat
#047671
avatar
Do A2:T501 se budou nahrávat data, se kterými bude dále pracovat konkrétní pracovník.
ostatní pracovníci budou pracovat v oranžové části U:AE, ale měli by mít možnost vidět data v A:T.
Zámek jsem již zkusil, ale když A:T označím jako odemčeno, tak pak je celá oblast přístupná pro editaci všem, což nemá být.
Není to náhodou v "Next cell", že přeskočí na nejbližší "volnou" buňku a vynechává právě ty uzamčené?

Jiří497 napsal/a:

V předchozím příspěvku jsi psal: Event. bych potřeboval zamknout při vkládání dat oblast A2:T501. Takže změna?
Takže:
1. Odemknout list
2. Označit oblast, která má být přístupná ( např. A1:B501)
3. Formát buněk, zámek
4. Zrušit zaškrtnutí "uzamknout"

Tam kde je zámek, se po uzamknutí listu nedá dostat
citovat

Strana:  « předchozí  1 2 3   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