< návrat zpět
MS Excel
Téma: Zámek buňky
Zaslal/a MilaF 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: 47358_mf_ciselniky.rar (15kB, staženo 21x)
MilaF(13.8.2020 14:24)#047672 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é?
citovat
MilaF(13.8.2020 15:07)#047673 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
citovat
Jiří497(13.8.2020 18:57)#047675 To je zajímavé. Ve sloupci U, i když byla buňka zamčená (a list taky), tak jsem si mohl zapisovat jak jsem chtěl, při jakémkoliv nastavení.
Pak jsem si udělal ověření dat v buňce T, to jsem nakopíroval do sloupce U a už mi to taky nezapisuje, když nemá. Nechápu proč, ale nebudu se po tom ani pídit.
citovat