Ahoj,
rád bych navázal s dotazem na kolegův problém s uzamykáním buněk po zapsání hodnoty. Jelikož je toto téma uzavřené, vznesu dotaz tímto způsobem. viewtopic.php?f=35&t=172117
Bylo by možné tento kód, viz níže, specifikovat jen pro určitou oblast buněk?
Předem moc děkuji.
'heslo listu
Const cstrHeslo As String = "heslo"
'před použitím odstraňte zámek všech buněk listu
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngBunka As Range
    'odemčení listu heslem
    ActiveSheet.Unprotect cstrHeslo
    'pro každou z měněných buněk
    For Each rngBunka In Target.Cells
        'je buňka prázdná?
        If IsEmpty(rngBunka) Then
            'vyjmi ji oblasti zamčených
            rngBunka.Locked = False
        Else
            'uplatni na ni zámek
            rngBunka.Locked = True
        End If
    Next rngBunka
    'znovuzamčení listu heslem
    ActiveSheet.Protect cstrHeslo
   
End Sub
			
									
									
						Makro excel - automatické zamykání buněk
- 
				guest
- Pohlaví:  
Re: Makro excel - automatické zamykání buněk
Technicky - ano, dělá se to v událostní proceduře běžně.
Prakticky - něco mi říká, že to nebude fungovat, resp. že to nemá smysl.
			
									
									
						Prakticky - něco mi říká, že to nebude fungovat, resp. že to nemá smysl.
Kód: Vybrat vše
'heslo listu
Const cstrHeslo As String = "heslo"
Const cstrOblastAdresa As String = "B2:E20"
'před použitím odstraňte zámek všech buněk listu
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngBunka As Range
    Dim rngOblast As Range
    'nastavení sledovan0 oblasti
    Set rngOblast = Range(cstrOblastAdresa)
    'došlo ke změně pouze ve sledované oblasti?
    If Union(Target, rngOblast).Address = rngOblast.Address Then
        'odemčení listu heslem
        ActiveSheet.Unprotect cstrHeslo
        'pro každou z měněných buněk
        For Each rngBunka In Target.Cells
            'je buňka prázdná?
            If IsEmpty(rngBunka) Then
                'vyjmi ji oblasti zamčených
                rngBunka.Locked = False
            Else
                'uplatni na ni zámek
                rngBunka.Locked = True
            End If
        Next rngBunka
        'znovuzamčení listu heslem
        ActiveSheet.Protect cstrHeslo
    End If
End SubRe: Makro excel - automatické zamykání buněk
Dobrý den,
moc děkuji za pomoc, funguje to tak, jak jsem si představoval. Ještě bych se zeptal, zdali by šla udělat úprava v tom, že by to uživatele vyzvalo k zadání hesla při rozkliknutí již zamčeného pole vyskakujícím oknem.
Ještě jednou moc děkuji.
			
									
									
						moc děkuji za pomoc, funguje to tak, jak jsem si představoval. Ještě bych se zeptal, zdali by šla udělat úprava v tom, že by to uživatele vyzvalo k zadání hesla při rozkliknutí již zamčeného pole vyskakujícím oknem.
Ještě jednou moc děkuji.
- 
				- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
 
- 
				
- 1
- 3714
- 
						od atari
						Zobrazit poslední příspěvek 
 10 srp 2025 21:20
 
 
- 
				
- 2
- 13867
- 
						od Snekment
						Zobrazit poslední příspěvek 
 29 led 2025 15:05
 
 
- 
				
- 1
- 6938
- 
						od atari
						Zobrazit poslední příspěvek 
 07 kvě 2025 09:41
 
 
- 
				
- 5
- 5374
- 
						od atari
						Zobrazit poslední příspěvek 
 26 dub 2025 09:11
 
 
- 
				- 
												Excel 2016 - vzorec kombinace podmínek Příloha(y)
 od MK_Vs » 08 led 2025 17:56 » v Kancelářské balíky
- 5
- 5608
- 
						od lubo.
						Zobrazit poslední příspěvek 
 14 led 2025 00:51
 
 
- 
												
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 12 hostů

