- Sư lý lỗi kiểm tra ô nhập password - (Help)

Liên hệ QC

dmtdmtbb

Biệt danh: xDelx
Tham gia
24/5/07
Bài viết
306
Được thích
438
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const tmp = 64
Dim i As Integer, j As Integer
Dim tmpAdd As String
..............For i = 1 To 10
..................For j = 1 To 500
......................tmpAdd = "$" & Chr(tmp + i) & "$" & j 'Vd: i = 2, j = 3 tmpAdd = $B$3
......................If Target.Value <> "" And Target.Address = tmpAdd Then PW.Show
..................Next j
..............Next i
End Sub


- Khi click ô đã nhập dử liệu muốn thay đổi phải nhập password cái này thì ok.
- Nhưng nếu quét khối trong đó có ô có dử liệu thì thì bị lỗi, bác nào có giải pháp hay hơn ra tay giúp.
 

File đính kèm

Lần chỉnh sửa cuối:
dmtdmtbb đã viết:
- Khi click ô đã nhập dử liệu muốn thay đổi phải nhập password cái này thì ok.
- Nhưng nếu quét khối trong đó có ô có dử liệu thì thì bị lỗi, bác nào có giải pháp hay hơn ra tay giúp.

Dùng Cells(1, 1). nhé!

If Target.Cells(1, 1).Value <> "" And Target.Address = tmpAdd Then PW.Show
 
Upvote 0
TuanVNUNI đã viết:
Dùng Cells(1, 1). nhé!

If Target.Cells(1, 1).Value <> "" And Target.Address = tmpAdd Then PW.Show


- Em làm như anh Tuân thì ok, nhưng quét khối có thể xóa được ô có nhập dử liệu.
- Làm sao để quét khối nếu trong đó có ô đã có dử liệu thì phải nhập pass mới cho xóa.
 
Lần chỉnh sửa cuối:
Upvote 0
Ê hê, Mình Exit xong là có thể Edit trong cell. Nhờ các bạn thêm một chút nữa đi.
 
Upvote 0
dmtdmtbb đã viết:
- Em làm như anh Tuân thì ok, nhưng quét khối có thể xóa được ô có nhập dử liệu.
- Làm sao để quét khối nếu trong đó có ô đã có dử liệu thì phải nhập pass mới cho xóa.

Nên bẫy pass trong thủ tục Worksheet_Change hay hơn. Bạn copy đoanh code dưới đây vào một sheet nào đó nhé!

Mã:
Dim OldValue
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not IsEmpty(OldValue) And (OldValue <> Target.Cells(1, 1)) Then
        If InputBox("Password:", "Yeu cau nhap Password ""tuan""") <> "tuan" Then
            Application.Undo

        End If
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    OldValue = Target.Cells(1, 1)
End Sub

Bạn tiếp tục sửa cho hoàn thiện hơn nữa.
 
Upvote 0
Web KT

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

Back
Top Bottom