zaklep celice po vnosu podatka

Pomoč pri delu z MS Excelom
Odgovori
ngc2392
Prispevkov: 60
Pridružen: Ne Jul 31, 2005 12:37 pm
Kraj: kranj

zaklep celice po vnosu podatka

Odgovor Napisal/-a ngc2392 »

Pozdrav in srečnga pa zdravga ter uspešnega...

Zanima me, če bi lahko naredil makro, ki bi zaklenil celico takoj, ko bi uporabnik vnesel podatek v njo. Na voljo bi bile le določene celice (ostale bi bile zaščitene standardno z zaščito lista). Je to težak zalogaj za excel? Zaklep mislim v smislu podobne rešitve kot zaklep celice (lock) oz. zaščita lista?
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: zaklep celice po vnosu podatka

Odgovor Napisal/-a admin »

ngc2392 napisal/-a:Pozdrav in srečnga pa zdravga ter uspešnega...
Srečno in uspešno tudi vam
ngc2392 napisal/-a:Je to težak zalogaj za excel?
Bolj ali manj trivialen... Spodaj imate želeni makro, kjer je ideja v tem, da so celice A1:B10 na začetku odščitene. Čim v katero izmed njih nekaj zapišete se takoj zaščiti in vnos vanjo ni več možen - torej natanko to kar želite:

Koda: Izberi vse

'
'   www.matjazev.net
'     januar 2011
'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  ' ali je pravo območje
  If (Intersect(Target, Range("A1:B10")) Is Nothing) Then Exit Sub
  
  ' ali je celic polna
  If (Trim(Target.Value) = "") Then Exit Sub
  
  ' odklenem zvezek
  ActiveSheet.Unprotect
  
  ' zaščitim celico
  Target.Locked = True
  
  ' zaklenem zvezek
  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Več o odzivih na dogodke in dogodku Worksheet_SelectionChange si preberite v tem forumu, tako da kar poiščite besedo 'Worksheet_SelectionChange' (zgoraj desno), sicer pa sem vam kodo natančno komentiral, tako da bi ne smelo biti problema...
lp,
Matjaž Prtenjak
Administrator
ngc2392
Prispevkov: 60
Pridružen: Ne Jul 31, 2005 12:37 pm
Kraj: kranj

Re: zaklep celice po vnosu podatka

Odgovor Napisal/-a ngc2392 »

Okej, hvala, super. Malce gledam naprej... in imam podvprašanje: vrstica "(If (Intersect(Target, Range("A1:B10")) Is Nothing) Then Exit Sub" se lahko kar skopira v smislu dodatnih celic (tukaj je označeno območje), če bi vsaka vrstica definirala svojo celico? Da bi v zgornjem ukazu recimo bilo deset takih vrstic z drugo celico?
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: zaklep celice po vnosu podatka

Odgovor Napisal/-a admin »

Da, lahko kopirate celotno vrstico ali pa popravite območje tako, da posamezne celice naštejete:

Koda: Izberi vse

 range("A1,C2,B10:E12;A14").Address  ' primer
lp,
Matjaž Prtenjak
Administrator
Odgovori