Bảo vệ dữ liệu đã nhập trong file Excell. (4 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Mình có áp dụng như thế này nhưng bị báo lỗi
Mã:
If .Cells(i, j).Value <> Empty Or .Cells(i, j).IsFormula = True Then
Bạn phải làm như thế này mà.
Mã:
If .Cells(i, j).Value <> Empty Or Application.IsFormula(.Cells(i, j)) = True Then
 
Nếu mà toàn bộ trang tính thì code nó sẽ lâu nên mình để 6000 dòng và 55 cột.Bạn có thể vào xem code và sửa ở trong đó.

Cái này bạn vào code sửa chọn thêm các sheets thôi.Ví dụ dùng vòng lặp For next chạy từ sheet1 đến sheets 4 là được mà.
Snow205

Cảm ơn bạn rất nhiều. Mính đã sửa Code đc rồi.
Tuy nhiên có 1 vấn đề, đó là các dữ liệu khác số 0 thì bảo vệ đưuọc, còn dữ liệu là số 0 thì ko được bảo vệ, vẫn có thể thay đổi.
Vậy trong mã Code có sửa đc không?
Giúp mình với!
 

File đính kèm

Snow205

Cảm ơn bạn rất nhiều. Mính đã sửa Code đc rồi.
Tuy nhiên có 1 vấn đề, đó là các dữ liệu khác số 0 thì bảo vệ đưuọc, còn dữ liệu là số 0 thì ko được bảo vệ, vẫn có thể thay đổi.
Vậy trong mã Code có sửa đc không?
Giúp mình với!
Bạn sửa.
Mã:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
       Dim i As Long, j As Long, arr
       With Sheet1
            Application.Calculation = xlCalculationManual
            arr = .Range("A1").Resize(26000, 155).Value
            .Unprotect 123
            For i = 4 To 26000
                For j = 1 To 155
                    If Not IsError(arr(i, j)) Then
                    If Len(arr(i, j)) Then
                       .Cells(i, j).Locked = True
                    End If
                    End If
                Next j
           Next i
           .Protect 123
           Application.Calculation = xlCalculationAutomatic
      End With
End Sub
 
Bạn sửa.
Mã:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
       Dim i As Long, j As Long, arr
       With Sheet1
            Application.Calculation = xlCalculationManual
            arr = .Range("A1").Resize(26000, 155).Value
            .Unprotect 123
            For i = 4 To 26000
                For j = 1 To 155
                    If Not IsError(arr(i, j)) Then
                    If Len(arr(i, j)) Then
                       .Cells(i, j).Locked = True
                    End If
                    End If
                Next j
           Next i
           .Protect 123
           Application.Calculation = xlCalculationAutomatic
      End With
End Sub
Snow25

Dữ liệu đã đưuọc bảo vệ thành công!

Đa tạ sư phụ!
 
Bạn sửa.
Mã:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
       Dim i As Long, j As Long, arr
       With Sheet1
            Application.Calculation = xlCalculationManual
            arr = .Range("A1").Resize(26000, 155).Value
            .Unprotect 123
            For i = 4 To 26000
                For j = 1 To 155
                    If Not IsError(arr(i, j)) Then
                    If Len(arr(i, j)) Then
                       .Cells(i, j).Locked = True
                    End If
                    End If
                Next j
           Next i
           .Protect 123
           Application.Calculation = xlCalculationAutomatic
      End With
End Sub
Thân gửi Snow25!

Tình hình là như này, khi khóa thì chức năng Use AutoFilter: bị khóa.
Vậy trong Code mình có thể thêm vào để dùng chức năng Use AutoFilter: được không?
Rất mong nhận được sự giúp đỡ!
 

File đính kèm

Khi khóa sheet bạn chọn "Use Autofilter" như hình nhe::
filter.png
 
Lần chỉnh sửa cuối:
Snow25 ơi,thêm 1 vấn đề này nữa:
Mình có thể tạo Code để người dùng chỉ có thể nhập giá trị ngày tháng năm của tháng hiện tại . Còn những tháng đã qua và chưa đến thì không được nhập vào. Cái đó bạn tạo Code được không?

ví dụ: bây giờ là tháng 12/2019, thì chỉ nhập được các ngày của tháng 12/2019. Còn lại các tnags 11/2019 trở về trước và 1/2020 trở đi không nhập vào được.
 
Snow25 ơi,thêm 1 vấn đề này nữa:
Mình có thể tạo Code để người dùng chỉ có thể nhập giá trị ngày tháng năm của tháng hiện tại . Còn những tháng đã qua và chưa đến thì không được nhập vào. Cái đó bạn tạo Code được không?

ví dụ: bây giờ là tháng 12/2019, thì chỉ nhập được các ngày của tháng 12/2019. Còn lại các tnags 11/2019 trở về trước và 1/2020 trở đi không nhập vào được.
Nhập vào cột nào và sheets nào vậy.
 

File đính kèm

Web KT

Bài viết mới nhất

Back
Top Bottom