Tak snad již mám řešení, které už snad funguje.
...
ActiveSheet.Unprotect Password:="123"
...
ActiveSheet.Protect Password:="123", AllowFormattingCells:=True, AllowFiltering:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlLockedCells
Application.EnableEvents = True
End Sub
Pohyb mi umožňuje NoRestriction, ale to mi zase zablokuje zámek v poslední buňce.
ActiveSheet.Protect Password:="123", AllowFormattingCells:=True, AllowFiltering:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlNoRestrictions
Application.EnableEvents = True
End Sub
MilaF napsal/a:
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é?
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
Jirko, moc děkuji za řešení.
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...
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)
Dobrý den,
obracím se na Vás s dotazem, jak upravit VBA kód, kde mám nadefinovaný zámek buňky v sloupci AE.
Dotaz je takový, že pokud se vybere hodnota (jméno) v sloupci U, pak se daná buňka s vyplněným jménem musí uzamknout a nesmí být přístupná pro další editaci. Např. v je vyplněno jméno v U5, tak již nesmí být možnost vybrat jiné jméno v U5).
Našel jsem si toto řešení, které funguje,
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set xRg = Intersect(Range("U2:U10"), Target)
If xRg Is Nothing Then Exit Sub
Target.Worksheet.Unprotect Password:="MilaF"
If xRg.Value <> mStr Then xRg.Locked = True
Target.Worksheet.Protect Password:="MilaF", AllowFiltering:=True
End Sub
ale zamyká mi pak celý sešit a nefunguje mi pak vkládání data do buněk AE, na které je již napsané jiné makro.
Potřeboval bych to ideálně udělat tak, aby se mi ohledně zámku buněk v U nezamykal sešit, ale jen právě ta konkrétní buňka U a nešla dále editovat.
Moc děkuji za pomoc.
SMEKÁM A MOC DĚKUJI ZA POMOC.
elninoslov napsal/a:
Nerozumiem, ale skúsim:
=COUNTIF(NOVÉ_xlsm[Měsíc];"*"&TEXT(B7;"[$-cs-CZ]mmmm")&"_"&YEAR(B7)&"*")
=COUNTIF(NOVÉ_xlsm[Měsíc];"*"&HODNOTA.NA.TEXT(B7;"[$-cs-CZ]mmmm")&"_"&ROK(B7)&"*")
=COUNTIFS(NOVÉ_xlsm[Měsíc];"*"&TEXT(B7;"[$-cs-CZ]mmmm")&"_"&YEAR(B7)&"*";NOVÉ_xlsm[Jméno];"<>";NOVÉ_xlsm[KONTROLA];"<>")
=COUNTIFS(NOVÉ_xlsm[Měsíc];"*"&HODNOTA.NA.TEXT(B7;"[$-cs-CZ]mmmm")&"_"&ROK(B7)&"*";NOVÉ_xlsm[Jméno];"<>";NOVÉ_xlsm[KONTROLA];"<>")
Dobrý den,
moc děkuji za vysvětlení.
Mohu ještě poprosit o další "špeky"?
V buňce B7 mám vzorec, ke kterému bych potřeboval doladit další podobné vzorce v B10 a v B11.
Dále si nevím rady, když potřebuji jednoduše doplnit text z B7 do buňky A10, tak mi funkce =CONCAT("Celkem Oaa za ";B7) text data kopíruje jako datum číslo.
Dobrý den,
moc děkuji za řešení. Funguje jak má (pouze alternativa =COUNTA(NOVÉ_xlsm[číslo]) nefunguje.
Mám ještě asi primitivní dotaz, jelikož mi uniká, jak excel pozná, že se jedná o list "2020", když je ve vzorci NOVÉ_xlsm?
elninoslov napsal/a:
=COUNTIFS(NOVÉ_xlsm[Jméno];"<>";NOVÉ_xlsm[KONTROLA];"")
EDIT: Aj ten predošlý je divný, dal by som ho takto:
=COUNTIFS(NOVÉ_xlsm[Jméno];"<>";NOVÉ_xlsm[KONTROLA];">=1.1.2019")
a ten prvý počíta milión riadkov. Načo. Veď odkazujte iba Tabuľku:
=COUNTIF(NOVÉ_xlsm[číslo];"*")
alebo
=COUNTA(NOVÉ_xlsm[číslo])
=POČET2(NOVÉ_xlsm[číslo])
Dobrý den,
můžete mi, prosím, poradit?
V tabulce mám určitá data potřeboval bych znát počet záznamů (řádků, bez záhlaví), pokud platí:
jestliže je záznam v listu 2020 v sloupci V a zároveň je prázdná buňka v sloupci AG, tak aby se řádek započítal.
manuálně si to dokážu vyfiltrovat a zjistit, že výsledek má být 105, ale potřeboval bych na to přijít vzorcem.
=KDYŽ(A(('2020'!V:V)<>"";('2020'!AG:AG)="");COUNTIF('2020'!AG:AG;""))
Někde mám však chybu...., viz příloha
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
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 . 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)
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.
Jirko, klobouk dolů. Moc, moc, moc děkuji.
Funguje, jak má.
Jste machr a super!
Jiří497 napsal/a:
Zkuste otestovat.Příloha: 47379_mf_ciselniky.zip (20kB, staženo 2x)
V pohodě, budu rád za nápad, případně i za řešení.
Děkuji.
Jiří497 napsal/a:
Aha, špatně jsem četl a jak jsem viděl žlutá, vztahoval jsem to na buňky A2: F10 listu OHL19.
To by mělo jít, ale nebudu to dělat podle barvy, ale ke každému číselníku vytvořím "Seznam povolených slov",což budou ty žlutě označené.
Ale dostanu se k tomu až v noci nebo zítra.
Problém je v tom, že se buňky musí odemykat na základě žlutých buněk z listu číselníky. Na listu OHL19 jsou v polích A:F pro uživatele k dispozici všechny hodnoty, avšak zámek musí reagovat pouze na ty, které uživatel vybere a které jsou žluté z listu číselníky.
A dále, když už tam je datum ve sloupci L napsané, tak zůstane zapsané, i když se ve stejném řádku nějaká hodnota ze sloupců A:F vymaže. Pokud by k tomu došlo (např. omylem), tak se datum z buňky L musí vymazat a L buňka znovu uzamknout, dokud nejsou splněny podmínky k otevření zámku.
Děkuji za ochotu a pomoc.
Jiří497 napsal/a:
1) Je to VBA. Procedura je umístěna v modulu listu OHL19
2) Pochopil jsem to tak, že v momentě, když se vyplní poslední žluté pole (v jednom řádku), tak se odemkne buňka v daném řádku ve sloupci L.
Kdy tedy má dojít k odemknutí buňky L? Kdykoli vyplním nějakou buňku A:F? Pak mi není jasné, kdy má být buňka L zamknuta.
Vycházím z toho, že když je list prázdný, tak je L uzamknuto. Vyplním hodnoty A1,B1,C1,D1,E1 a F1 a až po vyplnění poslední hodnoty se odemkne buňka L1.
Vyplním B7, D7, E7, F7, A7, C7 (napřeskáčku) a teprve po vyplnění poslední žluté buňky se odemkne L7.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.