Note: The other languages of the website are Google-translated. Back to English

Jak zamknout nebo chránit buňky po zadání dat nebo vstupu v aplikaci Excel?

Předpokládejme, že máte list a jen určitý rozsah prázdných buněk vyžaduje zadávání dat, a po dokončení zadávání dat je třeba buňky automaticky uzamknout, aby se zabránilo dalším změnám. Jak můžete toho dosáhnout? Tento článek vám může pomoci.

Zamkněte nebo ochraňte buňky po zadání nebo vstupu dat pomocí kódu VBA


Zamkněte nebo ochraňte buňky po zadání nebo vstupu dat pomocí kódu VBA

Například určitý rozsah prázdných buněk je A1: F8. Po uzamčení těchto buněk po zadání dat v aplikaci Excel postupujte takto.

1. Nejprve prosím odemkněte tento rozsah, vyberte buňky a klikněte pravým tlačítkem a poté vyberte Formát buněk v nabídce pravým tlačítkem a v nabídce Formát buněk zrušte zaškrtnutí políčka Zamčený rámeček pod ochrana kartu a nakonec klikněte na OK knoflík. Viz screenshot:

2. cvaknutí přezkoumání > Chraňte plech. A určete heslo k ochraně tohoto listu.

3. Klikněte pravým tlačítkem na kartu listu a vyberte Zobrazit kód z nabídky pravého tlačítka myši. Poté zkopírujte a vložte níže uvedený kód VBA do okna Kód. Viz screenshot:

Kód VBA: Zamkněte nebo ochraňte buňky po zadání nebo vstupu dat

Dim mRg As Range
Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
    mStr = mRg.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Intersect(Range("A1:F8"), Target)
    If xRg Is Nothing Then Exit Sub
    Target.Worksheet.Unprotect Password:="123"
    If xRg.Value <> mStr Then xRg.Locked = True
    Target.Worksheet.Protect Password:="123" 
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
     mStr = mRg.Value
End If
End Sub

Poznámka: V kódu je „A1: F8“ rozsah, který potřebujete k zadání dat; a „123“ je heslo tohoto chráněného listu. Změňte je prosím podle potřeby.

4. lis Další + Q současně zavřete Microsoft Visual Basic pro aplikace okno.

Po dokončení zadávání dat do buněk rozsahu A1: F8 se automaticky uzamknou. A pokud se pokusíte změnit jakýkoli obsah buňky tohoto rozsahu, zobrazí se dialogové okno s výzvou. Viz screenshot:


Související články:


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno
Komentáře (74)
Hodnocení 5 z 5 · 1 hodnocení:
Tento komentář byl moderátorem webu minimalizován
Dobrý den, mám tabulku s rozsahem A3:AN219, chtěl bych tento rozsah po dokončení zadání chránit. Prosím, pomozte mi v tom. Zkoušel jsem výše uvedený kód, ale nefunguje mi
Tento komentář byl moderátorem webu minimalizován
Toto nefunguje, když znovu otevřete soubor Excel, prosím pomozte
Tento komentář byl moderátorem webu minimalizován
Zkuste místo toho tento kód: Private Sub Worksheet_Change(ByVal Target As Range) Dim MyRange As Range Set MyRange = Intersect(Range("A1:D100"), Target) If Not MyRange is Nothing Then Sheets("Sheet1").Odemknout heslo: ="ahoj" MyRange.Locked = True Sheets("Sheet1").Chránit heslo:="ahoj" End If End Sub A nezapomeňte změnit rozsah (A1:D100), heslo (ahoj) a názvy/čísla listů (Sheet1) pokud to neodpovídá výše uvedenému :)
Tento komentář byl moderátorem webu minimalizován
Díky za kód. Dejte mi prosím vědět, jak provést automatické zamykání buněk (podobné těm, které uvádíte) POUZE PO uložení souboru
Tento komentář byl moderátorem webu minimalizován
Dobrý den, pane, čelím jednomu problému se stejným kódem při používání tohoto kódu s jiným cobe ve VBA. Prosím, navrhněte mi nějaké řešení Díky a S pozdravem Gourav
Tento komentář byl moderátorem webu minimalizován
Milý Gourave,
Tento problém bohužel nelze vyřešit.
Tento komentář byl moderátorem webu minimalizován
Zkoušel jsem kód a zdálo se, že trochu funguje. Umožňuje mi však smazat datum zadané do buňky, ale zastaví mě pouze tehdy, když se pokusím zadat něco jiného. Existuje způsob, jak zabránit smazání dat?
Tento komentář byl moderátorem webu minimalizován
Milá Stacy,
V mém případě se stejný problém neobjevuje. Kód zabraňuje uživatelům zadávat i mazat data ze zadaného rozsahu. Poskytli byste svou verzi Office pro další testování?
Tento komentář byl moderátorem webu minimalizován
Pro každého, kdo sem od tohoto komentáře mohl narazit. Pokud musíte list odemknout POKAŽDÉ, když vyplníte buňku, musíte nejprve: - Odemknout tabulku - Zvýraznit oblast listu, na kterou se kód vztahuje - Klepněte pravým tlačítkem myši a přejděte na 'formátovat buňky' - Přejděte na zcela vpravo záložka s názvem 'Ochrana' a ZRUŠTE ODBĚR v sekci 'Uzamčeno' (I když se objeví jako plná výplň místo zaškrtnutí) Poté budete moci zadávat data do více buněk, aniž byste je museli pokaždé odemykat. Mějte na paměti, že pokud potřebujete znovu navštívit uzamčené buňky a odstranit nebo upravit informace, možná budete muset zopakovat výše uvedené kroky. Snad to pomůže.
Tento komentář byl moderátorem webu minimalizován
rád zamykám pouze upravené buňky. jakmile zadám jakákoli data do prázdných buněk, potřebuji zamknout upravenou buňku, aby se automaticky uzamkla, ale ne prázdné buňky.
Tento komentář byl moderátorem webu minimalizován
Vážený Subhash,
Po použití kódu jsou uzamčeny pouze editované buňky v určeném rozsahu. A stále můžete zadávat data do prázdných buněk v určeném rozsahu, jak potřebujete. Po vyplnění prázdné buňky se tato automaticky uzamkne.
Tento komentář byl moderátorem webu minimalizován
Ne, po zadání dat do buňky v rozsahu uzamkne celý rozsah najednou
Tento komentář byl moderátorem webu minimalizován
Milý pradipe,
Jakou verzi Office používáte?
Tento komentář byl moderátorem webu minimalizován
Díky za kódování, ale mám problém dát 2 kódování do 1 listu, pls pomoc.
Tento komentář byl moderátorem webu minimalizován
Vážený Faire,
Tento problém bohužel nelze vyřešit.
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Pane, chci zamknout po jednorázovém zadání dat!
Jako když sleduji jednoho zákazníka a píšu stav, žádný další zaměstnanec to nemůže upravovat nebo upravovat!
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Metoda v tomto příspěvku vám také může pomoci vyřešit tento problém.
Tento komentář byl moderátorem webu minimalizován
buňky nejsou ani editovatelné...co se pokazilo nechápu pls help
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Nejprve musíte nastavit zadané buňky na Odemčeno pro úpravy a poté list chránit. A nakonec použijte skript VBA.
Tento komentář byl moderátorem webu minimalizován
musí se to kódovat?
Tento komentář byl moderátorem webu minimalizován
Hi


chci, aby to uzamklo rozsah po zadání do jedné buňky v rozsahu, prosím, můžete mi poradit, jak to musím upravit, abych to udělal děkuji
Tento komentář byl moderátorem webu minimalizován
Hi
úpravou kódu existuje způsob, jak jej mohu přimět k uzamčení všech buněk v rozsahu poté, co byla data zadána do jedné buňky v tomto rozsahu? takže mohou zadat data pouze do jedné buňky v rozsahu, nikoli více.


děkuji
Tento komentář byl moderátorem webu minimalizován
Milá Jackie,
Níže uvedený kód VBA vám může pomoci vyřešit problém.

Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Dim xRg jako rozsah
Dim xSRg jako rozsah
On Error Resume Next
Nastavit xSRg = Range("A1:F8")
Set xRg = Intersect(xSRg, Target)
Pokud xRg není nic, pak Exit Sub
Target.Worksheet.Unprotect Password:="123"
xSRg.Locked = Pravda
Target.Worksheet.Protect Password:="123"
End Sub
Tento komentář byl moderátorem webu minimalizován
Ahoj,
Existuje způsob, jak zamknout pouze buňky, nikoli celý list? Pokud například uživatel zadá "Ano" do A2, pak se A2 okamžitě uzamkne, aby nebyly povoleny žádné změny. Stále bych byl rád, kdyby ostatní mohli také upravovat jakoukoli jinou buňku. Dík!
Tento komentář byl moderátorem webu minimalizován
ahoj Smith,
Níže uvedený kód VBA vám může pomoci vyřešit problém. Zkuste to prosím a děkuji za váš komentář.

Soukromá dílčí tabulka_Změna (ByVal Target As Range)
On Error Resume Next
Target.Worksheet.Unprotect Password:="123"
Target.Locked = Pravda
Target.Worksheet.Protect Password:="123"
End Sub
Tento komentář byl moderátorem webu minimalizován
Dobrý den,

Existuje nějak zabránit tomu, aby uživatel klikl pravým tlačítkem na „zobrazit kód“ a viděl heslo správce?
Tento komentář byl moderátorem webu minimalizován
Nevadí, mám to.
Tento komentář byl moderátorem webu minimalizován
Jak? nepochopil jsem to...
Tento komentář byl moderátorem webu minimalizován
ahoj potřeboval bych pomoct


ve skutečnosti dělám pracovní seznam pro velkou skupinu lidí a tento list je přístupný všem, aby mohli zadat své požadavky na dny volna/roční dovolené atd., nicméně chci omezit pouze počet lidí na dovolené pro každého den (maximálně 5 na dovolené) a po zapsání 5 žádostí o dovolenou pro daný den již žádný jiný subjekt nemůže vyplnit další žádosti pro daný den.


existuje nějaký kód/funkce, která vypočítá počet konkrétních požadavků za den a poté, když je kvóta dosažena, jsou ostatní buňky zablokovány pro požadavky, aby nebyly překročeny? Díky předem
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Vítejte, pokud chcete na našem fóru zveřejnit jakýkoli dotaz: https://www.extendoffice.com/forum.html.
Získáte další podporu Excelu od našich profesionálních nebo jiných fanoušků Excelu.
Tento komentář byl moderátorem webu minimalizován
Ahoj - tento příspěvek byl velmi užitečný a funguje perfektně. Moje filtry však přestanou fungovat, když se buňky zablokují. Dá se to nějak obejít? Dík!
Tento komentář byl moderátorem webu minimalizován
Ahoj Kim,
Promiň, s tím ti nepomůžu. Funkce filtru je v chráněném listu ve výchozím nastavení zakázána.
Tento komentář byl moderátorem webu minimalizován
Díky chlape, tohle mi zachránilo práci :D
Tento komentář byl moderátorem webu minimalizován
když jsem se dostal z aktuálně fungujícího souboru a znovu jej otevřel, zjistil jsem, že nová buňka není po zadání dat uzamčena, pouze předchozí zamykací buňka našla zámek. jakékoli řešení
Tento komentář byl moderátorem webu minimalizován
Ahoj Nazmul,
Než sešit zavřete, musíte jej uložit jako sešit Excel s podporou maker.
Zatím zde nejsou žádné komentáře
Načíst další
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL