Khóa cell theo điều kiện

Liên hệ QC

lp0042019.dkdn

Thành viên mới
Tham gia
21/4/20
Bài viết
16
Được thích
2
Chào các anh/chị,

Nhờ các anh chị viết giúp em VBA để khóa những cell tương ứng với thời gian ngày đến và ngày đi nhưng không dùng Validation,cảm ơn các anh chị.
 

File đính kèm

  • khoa cell.xlsm
    10.8 KB · Đọc: 12
Chào các anh/chị,

Nhờ các anh chị viết giúp em VBA để khóa những cell tương ứng với thời gian ngày đến và ngày đi nhưng không dùng Validation,cảm ơn các anh chị.
PHP:
Sub KhoaCell()
Dim i As Long, FD As Long, LD As Long

    For i = 8 To Range("B8").End(xlDown).Row
        FD = Day(Range("B" & i)): LD = Day(Range("C" & i))
        ActiveSheet.Range(Cells(i, FD + 4), Cells(i, LD + 4)).Locked = False
    Next
    ActiveSheet.Protect Password:="123", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
 
Upvote 0
PHP:
Sub KhoaCell()
Dim i As Long, FD As Long, LD As Long

    For i = 8 To Range("B8").End(xlDown).Row
        FD = Day(Range("B" & i)): LD = Day(Range("C" & i))
        ActiveSheet.Range(Cells(i, FD + 4), Cells(i, LD + 4)).Locked = False
    Next
    ActiveSheet.Protect Password:="123", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Trường hợp ngày đến và ngày đi thay đổi , bạn giúp mình code xóa những dữ liệu đã có nằm ngoài vùng cho nhập liệu mới (chỉ thực hiện dòng nào thay đổi so với lúc ban đầu). Cảm ơn bạn.
 
Upvote 0
Trường hợp ngày đến và ngày đi thay đổi , bạn giúp mình code xóa những dữ liệu đã có nằm ngoài vùng cho nhập liệu mới (chỉ thực hiện dòng nào thay đổi so với lúc ban đầu). Cảm ơn bạn.

Bạn xem thử: đây là thủ tục dùng chỉnh sửa sau khi đã chạy thủ tục KhoaCell nhằm xóa data của các cell nằm ngoài vùng mới, đồng thời khóa chúng lại, thực hiện cho tất cả các dòng dù có thay đổi hay không.

Ghi chú: Tôi thêm vào ngày 31, kẻo khi gặp tháng 31 ngày lại thiếu

PHP:
Sub KhoaCell_ThayDoi()
Dim i As Long, FD As Long, LD As Long

    ActiveSheet.Unprotect Password:="123"
   
    For i = 8 To Range("B8").End(xlDown).Row
   
        FD = Day(Range("B" & i)): LD = Day(Range("C" & i))
        ActiveSheet.Range(Cells(i, FD + 4), Cells(i, LD + 4)).Locked = False
       
        With ActiveSheet.Range(Cells(i, 5), Cells(i, FD + 3))
            .Locked = True
            .ClearContents
        End With
       
        With ActiveSheet.Range(Cells(i, LD + 5), Cells(i, 35))
            .Locked = True
            .ClearContents
        End With
       
    Next
   
    ActiveSheet.Protect Password:="123", DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom