Hướng dẫn tạo Data Validation và chỉ cho chọn 1 lần

Liên hệ QC

saobekhonglac

Thành viên mới
Tham gia
1/11/08
Bài viết
1,565
Được thích
1,454
Giới tính
Nam
Chào anh/chị.
Mình có file excel. Tại sheet TH từ C2 đến C21 mình muốn dùng Data Validation và khóa lại chỉ cho chọn 1 lần (chi chọn 1 giá trị thì sẽ không được chọn lại giá trị khác). Nhờ anh/chị hướng dẫn giúp mình.
Cám ơn.
 

File đính kèm

Chào anh/chị.
Mình có file excel. Tại sheet TH từ C2 đến C21 mình muốn dùng Data Validation và khóa lại chỉ cho chọn 1 lần (chi chọn 1 giá trị thì sẽ không được chọn lại giá trị khác). Nhờ anh/chị hướng dẫn giúp mình.
Cám ơn.
Dùng name như sau để tạo Validation
Mã:
List=OFFSET(TH!$D2:$G2,,,--(TH!$C2=""))
Đương nhiên người ta có thể xóa rồi chọn lại.
 

File đính kèm

Nếu người ta xóa và chọn lại thì cũng như không. Mình thấy có bài người ta cho chọn xong rồi thì mũi tên nó mờ luôn.

Dùng name như sau để tạo Validation
Mã:
List=OFFSET(TH!$D2:$G2,,,--(TH!$C2=""))
Đương nhiên người ta có thể xóa rồi chọn lại.
 
Nếu người ta xóa và chọn lại thì cũng như không. Mình thấy có bài người ta cho chọn xong rồi thì mũi tên nó mờ luôn.
Vậy thì Protect Sheet, PW là 123
Nếu muốn xoá phải mở PW mới xoá làm lại được.
Ô nào chọn rồi không chọn lại được luôn, khỏi phải mờ mờ...
Dùng VBA nhé.
Chép code này vào VBE của sheet "TH"
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
If Not Intersect(Target, [C2:C21]) Is Nothing Then
    ActiveSheet.Unprotect "123"
    For Each Cll In Target
        If Cll.Value <> Empty Then
            With Cll
                .Locked = True
                .FormulaHidden = True
            End With
        Else
            With Cll
                .Locked = False
                .FormulaHidden = False
            End With
        End If
    Next Cll
    ActiveSheet.Protect "123"
End If
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Nếu người ta xóa và chọn lại thì cũng như không. Mình thấy có bài người ta cho chọn xong rồi thì mũi tên nó mờ luôn.
File Excel đã cho mở rồi thì người ta muốn làm gì làm, không cấm được. Dùng Macro mà người ta Disable Macro thì cũng như không.
 
Cám ơn anh Ba Tê nhiều.

Vậy thì Protect Sheet, PW là 123
Nếu muốn xoá phải mở PW mới xoá làm lại được.
Ô nào chọn rồi không chọn lại được luôn, khỏi phải mờ mờ...
Dùng VBA nhé.
Chép code này vào VBE của sheet "TH"
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
If Not Intersect(Target, [C2:C21]) Is Nothing Then
    ActiveSheet.Unprotect "123"
    For Each Cll In Target
        If Cll.Value <> Empty Then
            With Cll
                .Locked = True
                .FormulaHidden = True
            End With
        Else
            With Cll
                .Locked = False
                .FormulaHidden = False
            End With
        End If
    Next Cll
    ActiveSheet.Protect "123"
End If
End Sub
 
Anh Ba Tê xem giúp em file này. Khi em chọn Data Validation thì khi tắt file và mở lại thì Data Validation không còn hiệu lực (lúc đầu thì được nhưng khi em đặt pass và protect & hidden 2 sheet "So" & "TL" thì Data Validation không còn hiệu lực nữa.
Cám ơn anh.

Vậy thì Protect Sheet, PW là 123
Nếu muốn xoá phải mở PW mới xoá làm lại được.
Ô nào chọn rồi không chọn lại được luôn, khỏi phải mờ mờ...
Dùng VBA nhé.
Chép code này vào VBE của sheet "TH"
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
If Not Intersect(Target, [C2:C21]) Is Nothing Then
    ActiveSheet.Unprotect "123"
    For Each Cll In Target
        If Cll.Value <> Empty Then
            With Cll
                .Locked = True
                .FormulaHidden = True
            End With
        Else
            With Cll
                .Locked = False
                .FormulaHidden = False
            End With
        End If
    Next Cll
    ActiveSheet.Protect "123"
End If
End Sub
 

File đính kèm

Anh Ba Tê ơi vào giúp em với.
 
Web KT

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

Back
Top Bottom