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?