Zaščita celic

Pomoč pri izdelavi makrov
Odgovori
dragopre
Prispevkov: 105
Pridružen: To Dec 11, 2012 11:46 pm

Zaščita celic

Odgovor Napisal/-a dragopre »

Pozdravljeni

Na prvem listu dokumenta imam podatke, ki jih uporabnik vnaša.
Na ostalih listih imam poročila in izvlečke teh podatkov. Te liste sem zaščitil, da uporabnik ne bi »pokvaril« formul.
Izbiro zaščitenih celic dovolim, ker z dvo-klikom oziroma desnim klikom prikažem specifikacijo rezultata (seštevka),
oziroma omogočim popravek podatka na osnovnem listu.
Moti me, ker pri poskusu vnosa v zaščiteno celico, uporabnik dobi sporočilo z navodilom za odstranitev zaščite.

Ali je možno to sporočilo zamenjati s svojim sporočilom, npr.: »To je izveden podatek, popravljaj podatke na vnosnem listu.«

Hvala za pomoč, Drago
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Zaščita celic

Odgovor Napisal/-a admin »

Pozdravljeni,

Jaz ne poznam načina, ki bi omogočil spremeniti sporočilo, ki ga uporabnik dobi ob izboru zaščitene celice.

Edini način, ki ga poznam in s katerim dosežete željeni učinek je uporaba VBA makra:

Koda: Izberi vse

Private Sub Worksheet_Change(ByVal Target As Range)
  ' dovolim spreminjati celice na območju A1 do A10
  If Not (Intersect(Target, Range("$A$1:$A$10")) Is Nothing) Then Exit Sub
  
  ' ostalih ne dovolim
  MsgBox "To je izveden podatek, popravljaj podatke na vnosnem listu."
  
  With Application
    .EnableEvents = False
    .Undo
    .EnableEvents = True
  End With
End Sub
Seveda pa to sedaj preprečuje spremembe tudi iz vaše kode, zato morate - kadar podatke spreminjate iz kode - to posebej testirati... Recimo

Koda: Izberi vse

Public SpreminjamIzKode As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
  If (SpreminjamIzKode) Then Exit Sub
  
  ' in tako dalje
End Sub
Je nekaj dela, a takšno je pač življenje razvijalcev :)
lp,
Matjaž Prtenjak
Administrator
dragopre
Prispevkov: 105
Pridružen: To Dec 11, 2012 11:46 pm

Re: Zaščita celic

Odgovor Napisal/-a dragopre »

Najlepša hvala za hiter odgovor.
Nekaj dela je, pa ni prehudo. Saj sem preverjal dogodke lista, nisem pa pomislil,
da lahko izvedem preklic spremembe.

Lep pozdrav, Drago
Odgovori