Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

macro za zaključavanje čelije kada se unese podatak

[es] :: Office :: Excel :: macro za zaključavanje čelije kada se unese podatak

[ Pregleda: 2170 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

jaskojsako
BIH

Član broj: 141632
Poruke: 198
109.175.98.*



+4 Profil

icon macro za zaključavanje čelije kada se unese podatak01.03.2015. u 10:32 - pre 82 meseci
poz
imam jedno pitanje,kako da zaključam čeliju kada se u čeliju unese podatak u rasponu primer radi CC3:AG3,sljedeći raspon C4:AG4 i tako sve do C7:AG7
da kad unesem podatak u čeliju C3 da je zaključa a da mogu unijeti podatak u sljedeću čeliju D3 i da i nju zaključa poslije unosa podatka i tako redom
imam kod ali čim unesem podatak u prvu čeliju odmah zakljuće i sve ostale
naravno da traži pasword za otključavanje
hvala

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C3:AG3")) Is Nothing Then 'set your range here
ActiveSheet.Unprotect Password:="mypassword"
Target.Locked = True
ActiveSheet.Protect Password:="mypassword"
End If
End Sub
Jasmin
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2204
212.200.121.*

Sajt: www.gowi.rs


+97 Profil

icon Re: macro za zaključavanje čelije kada se unese podatak02.03.2015. u 09:56 - pre 82 meseci
Izmenio sam makro na događaj worksheet change tako da ispituje da li je ćelija u istom redu, postmatranom opsegu popunjena i ako jeste onda je zaključava
Znači za ovo rešenje nije bitno da li se popunjava redom ili ne. Naravno može da se napravi i drugačije u zavisnosti od toga šta ti treba. Opseg koji posmatraš treba da uključi sve redove koji se unose - dakle C3:AG7 . U mom primeru ja sam radi testiranja postavio samo pet kolona od C, a ti prilagodi kako treba.

Posebno je važno kako je postavljen atribut locked za ćeljie. Default u Excelu je da je on True, ali za tvoj primer treba da je False u posmatranom opsegu.

Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cl As Range
Dim currRng As Range
If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("C3:G17")) Is Nothing Then 'set your range here
    Set currRng = Target.Resize(ColumnSize:=5)
    ActiveSheet.Unprotect Password:="mypassword"
    For Each cl In currRng
      If Len(cl.Text) > 0 Then
        cl.Locked = True  ' zakljucaj ćeliju ako je nešto upisano
      End If
    Next cl
    ActiveSheet.Protect Password:="mypassword"
End If
End Sub


Nisam shavatio smisao svega ovoga i verujem da će napraviti više štete nego koristi. Ja bih koristio ugrađeni alat Validate sa nekom korisničom funkcijom koja bi ispitavala da li su sve ćelije iz posmatranog opsega u istom redu popunjene i onda bi dao upozorenje za izmenu - ali bi se izmena dozvolila. Ako baš hoćeš da kontrolišeš izemne onda je možda bolje da je unos moguć samo preko forme.
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Prikačeni fajlovi
 
Odgovor na temu

jaskojsako
BIH

Član broj: 141632
Poruke: 198
109.175.99.*



+4 Profil

icon Re: macro za zaključavanje čelije kada se unese podatak05.03.2015. u 10:32 - pre 82 meseci
poz
nisam bio tu,hvala ti odgovara ovo
što si napravio
Jasmin
 
Odgovor na temu

[es] :: Office :: Excel :: macro za zaključavanje čelije kada se unese podatak

[ Pregleda: 2170 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.