Đỗ Thành Luân
Đỗ Thành Luân
Thảo luận 10 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 255 lượt xem

em muốn khóa không cho nhập thẳng vào bảng dữ liệu mà chỉ cho phép

Thầy cho hỏi em muốn khóa không cho nhập thẳng vào bảng dữ liệu mà chỉ cho phép nhập Tên, mức lương, ngày vào làm ở ô B3:B5 thì làm thế nào ạ?
Thảo luận 10 câu trả lời
Lượt xem 255 lượt xem
Vỗ tay vỗ tay
Đỗ Thành Luân 08:04 - Apr 24, 2020
Chào bạn khóa vùng đó lại, và thiết kế nhập theo from khi bạn ấn nút nhập là mở khóa vùng đó, nhập vào lại khóa.
sub nhaplieu
if(dk) then
mokhoa
//code nhap
khoalai
end if

end sub
Vỗ tay vỗ tay
Đỗ Thành Luân 20:04 - Apr 25, 2020
Thầy có thể hướng dẫn chi tiết hơn với Sheet2 đã khóa cả sheet bằng Protect sheet. Chỉ nhập liệu ở sheet1
Sub Vidu1()
Dim DongCuoi As Long
DongCuoi = Sheet2.Range("A" & Rows.Count).End(xlUp).Row
Sheet2.Range("A" & DongCuoi + 1) = Sheet1.Range("B2").Value
Sheet2.Range("B" & DongCuoi + 1) = Sheet1.Range("B3").Value
Sheet2.Range("C" & DongCuoi + 1) = Sheet1.Range("B4").Value
Sheet1.Range("B2:B4").ClearContents
MsgBox " Thanh Cong"
End Sub
Vỗ tay vỗ tay
Đỗ Thành Luân 20:04 - Apr 25, 2020
Chào bạn bạn tham khảo code mẫu dưới nhé:
Option Explicit
Sub GTHProtectSheet()
ActiveSheet.Protect "Gitiho"
End Sub
Sub GTHUProtectSheet()
ActiveSheet.Unprotect "Gitiho"
End Sub
Sub Ghidulieu()
Dim dc As Long
'chon sheets2
Sheet2.Activate
'mo khoa
Call GTHUProtectSheet
'tim dong cuoi
dc = Sheet2.Range("A" & Rows.Count).End(xlUp).Row + 1
' bay loi
If (dc <= 3) Then Exit Sub
' ghi du lieu
With Sheet2
.Range("A" & dc) = Sheet1.Range("B2").Value
.Range("B" & dc) = Sheet1.Range("B3").Value
.Range("C" & dc) = Sheet1.Range("B4").Value
End With
' khoa sheets
Call GTHProtectSheet
' chon sheet nhap
Sheet1.Activate
' xoa du lieu cu
Sheet1.Range("B2:B4").ClearContents
' xuat thong bao
MsgBox "Thành Công"
End Sub
Vỗ tay vỗ tay
Đỗ Thành Luân 21:04 - Apr 29, 2020
mình làm được rồi, cảm ơn bạn
Vỗ tay vỗ tay
Đỗ Thành Luân 21:04 - Apr 29, 2020
Mình muốn tạo cảnh báo thông tin tên nhân viên đã nhập đề nghi kiểm tra lại thì có hàm tìm kiếm trong cột A như nào được nhỉ?

Vỗ tay vỗ tay
Đỗ Thành Luân 22:04 - Apr 29, 2020
chào bạn trước tiên text bạn nhập bạn phải dùng hàm như countif() để kiểm tra nếu > 1 với dữ liệu bạn đã lưu thì bạn đưa ra thông báo: code có dạng
if(kết quả tìm kiếm >=1) then MsgBox "Trung" exit sub
Vỗ tay vỗ tay
Đỗ Thành Luân 02:05 - May 04, 2020

Em không hiểu đoạn code này, các anh chỉ rõ cho em được không ạ ?


sub nhaplieu
if(dk) then
mokhoa
//code nhap
khoalai
end if

end sub
Vỗ tay vỗ tay
Đỗ Thành Luân 20:05 - May 04, 2020
Chào bạn bạn làm như sau nhé.
phần điều kiện(dk) là biến trả kiểu bool(đúng sai) dk là kết quả hàm countif(vungdanhap, text) và nếu kết quả >=1 thì đưa ra thông báo.
code mẫu
Option Explicit
Sub texttrung()
Dim dc As Long, dem As Integer
'tim dong cuoi
dc = Sheet1.Range("A" & Sheet1.Rows.Count).End(xlUp).Row
' thuc hien dieu kien
dem = Application.WorksheetFunction.CountIf(Sheet1.Range("A1:A" & dc), Range("B1").Value)
'kiem tra dieu kien
If (dem >= 1) Then
' dua ra thong bao
MsgBox "Trung"
' chon lai o b1
Sheet1.Range("B1").Select
Exit Sub
Else
' gidu lieu
Sheet1.Range("A" & dc + 1).Value = Sheet1.Range("B1").Value
' xóa du lieu cu
Sheet1.Range("B2").ClearContents
'chon lai o b1
Sheet1.Range("B1").Select
End If
' thoat
End Sub
Vỗ tay vỗ tay
Đỗ Thành Luân 14:10 - Oct 26, 2020

thầy cho e hỏi về code trong macro khóa sheet ở trên:
'tim dong cuoi
dc = Sheet2.Range("A" & Rows.Count).End(xlUp).Row + 1
' bay loi
If (dc <= 3) Then Exit Sub

Tại sao điều kiện lại là dc<=3 ah, có thể là con số khác không

Vỗ tay vỗ tay
Đỗ Thành Luân 15:10 - Oct 26, 2020

Chào bạn nếu dòng cuối <=3 nghĩa là không có tiêu đề thì mình sẽ dừng ghi để tránh ảnh hưởng đến dữ liệu xuất hiện trong bảng tính. con số 3 ở đây tuỳ thuộc vào bảng tính của bạn nhé.

Vỗ tay vỗ tay
Câu hỏi liên quan
@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội