Cho em hỏi cách khóa CELL sau khi nhập lần đầu tiên!

Liên hệ QC

lammtv

Thành viên hoạt động
Tham gia
22/6/08
Bài viết
162
Được thích
28
Cho em hỏi trong excel có cách nào khóa cell lại sau khi mình nhập dữ liệu vào đó ko mấy anh chị? Có nghĩa là ban đầu ô đó là ô trống, sau khi mình nhập vào xong rồi thì mình ko chỉnh sửa được ô đó, phải có password mới chỉnh được! Em đã tìm hiểu cách đặt pass cho cell trong excel rồi nhưng chưa đúng ý em, vì file này là file chung của đám linh em, cuối mỗi ngày là tụi nó phải nhập khối lượng công việc vào, em sợ đến ngày thứ 10 thì nó sửa lại ngày 1 hay ngày 2 thì em ko kiểm soát được!Cuối tháng em tổng kết 1 lần em sợ em ko biết nó có sửa mấy ngày đầu tiên ko nữa!
Mong anh chị giúp dùm em!
Nếu câu hỏi của em có tối nghĩa thì nhờ mấy anh em giúp dùm em cách nào mà quản lý bảng tính mà sau khi nhân viên em nhập xong là nó tự động ko sửa được, cuối tuần hoặc cuối tháng em mới tổng kết 1 lần!
Thanks anh chị em nhiều!
 
Lần chỉnh sửa cuối:
gíup em với mấy anh!
 
Mình không biết Excel có chức năng như bạn mong muốn ko?
Nhưng nếu chỗ bạn có internet thì sau mỗi buổi bạn yêu cầu nhân viên của bạn gửi mail cho bạn (daily report) cuối tháng yêu cầu họ gửi bảng tổng hợp lên. Như thế bạn có thể kiểm tra bất cứ ngày nào mà ko lo bị chỉnh sửa.
Bác nào biết thì post cho anh em cùng tham khảo nhé !
 
Dạ, cám ơn anh! Nhưng đau 1 cái là chỉ có 1 file excel mà rất nhiều nhân viên phải điền!Nên ko thể gửi mail dc anh ơi!
 
Dạ, cám ơn anh! Nhưng đau 1 cái là chỉ có 1 file excel mà rất nhiều nhân viên phải điền!Nên ko thể gửi mail dc anh ơi!
Bạn thử nhập gì đó File này xem sao nhé (File chỉ minh họa không lịch sự lắm mong mọi người thông cảm)
 

File đính kèm

  • gpe.xls
    19 KB · Đọc: 132
Bạn thử nhập gì đó File này xem sao nhé (File chỉ minh họa không lịch sự lắm mong mọi người thông cảm)
Anh cho em hỏi 1 số vấn đề với:
1/ Em muốn áp dụng cho file excel của em thì em cần copy đoạn code này vào file là dc phải ko anh? sao em copy vào ngay cả ô trống nó cũng ko cho điền vậy anh?
2/ Giờ em muốn thay đổi 1 chút là mấy ô đó muốn nhập mấy lần và nhập khi nào cũng được nhưng sau khi nhập xong thì 1 khoảng thời gian nào đó là nó tự khóa, ví dụ em điền 15 phút vào thì sau 15 phút nó khóa, còn trước đó thì chỉnh sửa tha hồ! Số phút đó chỉ có mình chỉnh sửa được thôi và có password! Các ô cũng vậy sau 15 phút thì muốn sửa cũng phải có password giống như vì dụ anh mới làm cho em đó!
Hixx khả năng diễn dãi của em kém ko biết anh có giúp dc em ko nưa! Thank anh rất nhiều!
 
Anh cho em hỏi 1 số vấn đề với:
1/ Em muốn áp dụng cho file excel của em thì em cần copy đoạn code này vào file là dc phải ko anh? sao em copy vào ngay cả ô trống nó cũng ko cho điền vậy anh?
2/ Giờ em muốn thay đổi 1 chút là mấy ô đó muốn nhập mấy lần và nhập khi nào cũng được nhưng sau khi nhập xong thì 1 khoảng thời gian nào đó là nó tự khóa, ví dụ em điền 15 phút vào thì sau 15 phút nó khóa, còn trước đó thì chỉnh sửa tha hồ! Số phút đó chỉ có mình chỉnh sửa được thôi và có password! Các ô cũng vậy sau 15 phút thì muốn sửa cũng phải có password giống như vì dụ anh mới làm cho em đó!
Hixx khả năng diễn dãi của em kém ko biết anh có giúp dc em ko nưa! Thank anh rất nhiều!

1. Bạn nhấn Ctr+A nhấn Ctrl+1 -> chọn thẻ Protection -> bỏ tích chọn Locked
2. Bạn nhấn Alt+F1 và kích kép vào Sheet1 file của tôi và copy đoạn mã đó vào Sheet dùng của file bạn là được
 
1. Bạn nhấn Ctr+A nhấn Ctrl+1 -> chọn thẻ Protection -> bỏ tích chọn Locked
2. Bạn nhấn Alt+F1 và kích kép vào Sheet1 file của tôi và copy đoạn mã đó vào Sheet dùng của file bạn là được
Thanks anh nhiều! Nhờ anh giúp dùm em yêu cầu thứ 2 dc ko ạ! Chân thành cảm ơn anh nhiều!
 
Thanks anh nhiều! Nhờ anh giúp dùm em yêu cầu thứ 2 dc ko ạ! Chân thành cảm ơn anh nhiều!
Chẳng dễ ăn với yêu cầu này đâu (tuy tôi nghĩ là làm được bằng hàm API SetTimer)
Nguyên tắc:
- Mở file lên, nếu gõ gì đó vào cell thì bắt đầu tính giờ (kích hoạt hàm SetTimer)
- Đến 1 khoảng thời gian nào đó tùy chỉnh thì kích hoạt khóa cell
Nói vậy thôi chứ viết cho hoàn chỉnh thật không đơn giản chút nào... Vậy thôi mơ làm gì, đến khi muốn thay đổi gì đó thì bạn biết đường đâu mà sửa code
 
Chẳng dễ ăn với yêu cầu này đâu (tuy tôi nghĩ là làm được bằng hàm API SetTimer)
Nguyên tắc:
- Mở file lên, nếu gõ gì đó vào cell thì bắt đầu tính giờ (kích hoạt hàm SetTimer)
- Đến 1 khoảng thời gian nào đó tùy chỉnh thì kích hoạt khóa cell
Nói vậy thôi chứ viết cho hoàn chỉnh thật không đơn giản chút nào... Vậy thôi mơ làm gì, đến khi muốn thay đổi gì đó thì bạn biết đường đâu mà sửa code
Cảm ơn thầy nhiều ah! Có thể nó có textbox để mình điền thời gian vào đó để kích hoạt thời gian trước! Khi mở file excel lên thì trong textbox đang hiện thời gian là bao nhiêu thì nó sẽ hiểu! Em cảm ơn thầy đã quan tâm! Nếu nó khó thực hiện quá thì chắc thôi ạ! Nhưng dù sao em cũng hy vọng các anh giúp dùm em ạ! Xin chân thành cảm ơn!
 
vậy là bất khả thi rồi hả mấy anh?
 
vậy là bất khả thi rồi hả mấy anh?
Trong File tôi làm ở trên tôi làm như sau:
1. Khi nhập số liệu cho 1 cell nào xong thì thực hiện mở Pas của Sheet
2. Muốn Khóa cell vừa nhập phải tích chọn Locked lại và đặt mật khẩu cho sheet
Như vậy nếu bạn muốn để cho 15 phút để nhập thì trong thời gian đó (code đã mở pas) thì các dữ liệu trước đây họ cũng sữa được (pas chẳng có ý nghĩa gì ???). Còn cách vừa khóa các cell cũ đã nhập và cell mới nhập cho phép nhập 15 thì tôi không nghĩ ra.
 
vậy là bất khả thi rồi hả mấy anh?
Mới nghĩ ra 1 cách đơn giản nhưng không biết có đáp ứng được nhu cầu của bạn hay không! Cách làm như sau:
1> Code trong Module:
PHP:
Public Check As Boolean
Sub ProtectSh()
  On Error Resume Next
  If Check = False Then
    With ActiveSheet
      .Unprotect ("gpe")
      .UsedRange.SpecialCells(2).Locked = True
      .UsedRange.SpecialCells(2).FormulaHidden = True
      .UsedRange.SpecialCells(3).Locked = True
      .UsedRange.SpecialCells(3).FormulaHidden = True
      .Protect ("gpe")
    End With
    Check = True
  End If
End Sub
2> Code trong Sheet
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Target.Value <> "" Then
    Check = False
    Application.OnTime Now + TimeValue("00:00:05"), "ProtectSh"
  End If
End Sub
Code này sẽ khóa những cell đã có dữ liệu sau 5 giây
 

File đính kèm

  • LockCell.xls
    21.5 KB · Đọc: 63
Cách đơn giản mà rất hay. ndu96081631 có thể "chế" thêm để code đạt được điều này không: Chưa hết thời gian hạn định để khóa cell thì không đóng được file Excel đang thao tác.
 
Cách đơn giản mà rất hay. ndu96081631 có thể "chế" thêm để code đạt được điều này không: Chưa hết thời gian hạn định để khóa cell thì không đóng được file Excel đang thao tác.
Cái này e rằng... quá khó ---> Vì do dù bạn có viết code thế nào đi nữa, bùn lắm, cái thằng người dùng nó đóng không được file, nó sẽ End Process trong Task Manager (End thằng Excel.exe) thì code cũng bằng thừa
 
Cảm ơn thầy rất nhiều! Rất đúng ý em! Mình muốn đổi thời gian chỉ cần đổi TimeValue("00:00:05")là được phải ko thầy?
 
Cảm ơn thầy rất nhiều! Rất đúng ý em! Mình muốn đổi thời gian chỉ cần đổi TimeValue("00:00:05")là được phải ko thầy?
Uh... TimeValue("00:00:05") được viết theo định dạng hh:mm:ss
vậy:
TimeValue("00:00:05") tương đương 5 giây
TimeValue("00:05:00") tương đương 5 phút
 
thầy cho em hỏi 1 chút nhé thầy! Nếu bấm Alt+F8 xóa cái macro đó thì file mình có bị sao ko thầy?
 
thầy cho em hỏi! Khi em muốn sửa em unprotect rồi nhập pass, sau đó em muốn protect lại thì sao thầy?em đợi 5 giây nó ko tự động khóa!
 
Web KT
Back
Top Bottom