Code tìm kiếm, so sánh và nhập dữ liệu

Liên hệ QC

bkvampire10

Thành viên mới
Tham gia
14/2/22
Bài viết
21
Được thích
2
Chào mọi người

Em có sheet mã số bao gồm mã số và ngày nhập hàng.
Sau đó em tạo 1 form gồm có 2 textbox là mã số hàng và ngày nhập hàng. Sau khi nhập thì code em sẽ tìm và so sánh với sheet mã số, nếu mã số trùng thì value của textbox ngày nhập hàng sẽ tự nhập vào cột ngày nhập hàng của sheet với row tương ứng.
Vấn đề của em thắc mắc là em giả sử nhập 1 mã số mà không có trong sheet mã số thì nó tự động bỏ qua thì khai báo như thế nào ạ?

Em cảm ơn.
 
Chào mọi người

Em có sheet mã số bao gồm mã số và ngày nhập hàng.
Sau đó em tạo 1 form gồm có 2 textbox là mã số hàng và ngày nhập hàng. Sau khi nhập thì code em sẽ tìm và so sánh với sheet mã số, nếu mã số trùng thì value của textbox ngày nhập hàng sẽ tự nhập vào cột ngày nhập hàng của sheet với row tương ứng.
Vấn đề của em thắc mắc là em giả sử nhập 1 mã số mà không có trong sheet mã số thì nó tự động bỏ qua thì khai báo như thế nào ạ?

Em cảm ơn.
Bạn phải đưa file giả định lên thì mọi người mới biết Form, Textbox như thế nào, Code để nhập Textbox ấy vào đâu... thì mới có cách giải quyết chứ? chứ cứ như mô tả và đoán mò thì có thánh mới giúp được bạn.
 
Upvote 0
Bạn phải đưa file giả định lên thì mọi người mới biết Form, Textbox như thế nào, Code để nhập Textbox ấy vào đâu... thì mới có cách giải quyết chứ? chứ cứ như mô tả và đoán mò thì có thánh mới giúp được bạn.
dạ vâng. Em cảm ơn nhắc nhớ.
Như file bên dưới e viết
Em giả sử trường hợp mà mã số em nhập không có trong list thì sửa code như thế nào để nó bỏ qua lun ạ
 

File đính kèm

  • LIST QUẢN LÍ MÃ SỐ.xlsm
    25.9 KB · Đọc: 11
Upvote 0
dạ vâng. Em cảm ơn nhắc nhớ.
Như file bên dưới e viết
Em giả sử trường hợp mà mã số em nhập không có trong list thì sửa code như thế nào để nó bỏ qua lun ạ
Của bạn đây, nhớ kiểm tra lại thật kỹ và lưu ý không nên viết tắt hoặc dùng tiếng Tây , tiếng ta lẫn lộn.
 

File đính kèm

  • LIST QUẢN LÍ MÃ SỐ.xlsm
    27.9 KB · Đọc: 20
Upvote 0
@chủ bài đăng: Ghé xem file mình làm lúc rỗi nào đó nha:
 

File đính kèm

  • Form.rar
    24.2 KB · Đọc: 28
Upvote 0
Upvote 0
. . . . . . dạ vâng, em cảm ơn a nhìu nhé. Chúc a ngày mới vui vẻ.
Dòng lệnh (mà mình ghi chỉ số 4) của macro trong form của bạn viết tiềm ẩn nguy cơ gây cháy nổ cao (trong ngay cả mùa đông giá lạnh):
PHP:
Private Sub cmd_nhapdulieu_Click()
 Dim Ws As Worksheet:               Dim irow As String
 
 Set Ws = Sheets("LIST_QUAN_LI_BAN_VE")
 With Me
4    irow = Ws.Range("B:B").Find(.cmb_MSBV_1.Value).Row '?   '
    Ws.Cells(irow, "C").Value = CDate(Format(.cmb_MSBV_1.Value, "dd,mm,yyyy"))
    .cmb_MSBV_1 = Empty:            .txt_NgayNghiemThu_2 = Empty
    .cmb_MSBV_1.SetFocus
 End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Dòng lệnh (mà mình ghi chỉ số 4) của macro trong form của bạn viết tiềm ẩn nguy cơ gây cháy nổ cao (trong ngay cả mùa đông giá lạnh):
PHP:
Private Sub cmd_nhapdulieu_Click()
 Dim Ws As Worksheet:               Dim irow As String
 
 Set Ws = Sheets("LIST_QUAN_LI_BAN_VE")
 With Me
4    irow = Ws.Range("B:B").Find(.cmb_MSBV_1.Value).Row '?   '
    Ws.Cells(irow, "C").Value = CDate(Format(.cmb_MSBV_1.Value, "dd,mm,yyyy"))
    .cmb_MSBV_1 = Empty:            .txt_NgayNghiemThu_2 = Empty
    .cmb_MSBV_1.SetFocus
 End With
End Sub
dạ có cách nào ngăn ngừa k anh?
 
Upvote 0
Muốn ngăn chặc chuyện này, bạn tự chiêm nghiệm các dòng lệnh có chỉ số trong macro (nhất là dòng lệnh mang số 4) sau:
PHP:
Private Sub cmb_MSBV_1_Change()
 Dim Rng As Range, sRng As Range
 Dim Rws As Long, J As Long, W As Integer
 Dim MyAdd As String
 
 With Sheets("List_Quan_Li_Ban_Ve")
    Rws = .[B2].CurrentRegion.Rows.Count
1    Set Rng = .[B1].Resize(Rws)
    Me!lBDS.List = Arr()
 End With
 If Len(Me!cmb_MSBV_1.Text) = 3 Then
2    Set sRng = Rng.Find(Me!cmb_MSBV_1.Text, , xlFormulas, xlPart)
    Arr(1, 1) = "Nothing":          W = 1
3    If Not sRng Is Nothing Then
        Arr(W, 1) = "Mã Ban Ve":            Arr(W, 2) = "Ngày-Tháng"
        MyAdd = sRng.Address
        Do
            W = W + 1:              Arr(W, 1) = sRng.Value
            Arr(W, 2) = sRng.Offset(, 1).Value
            Set sRng = Rng.FindNext(sRng)
        Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
4    Else    '!!!'
        MsgBox "Nothing", , "GPE.COM Xin Chào Mi!"
5    End If
 End If
 Me!lBDS.List = Arr()
End Sub
 

File đính kèm

  • 2223A.jpg
    2223A.jpg
    67.7 KB · Đọc: 4
Upvote 0
Muốn ngăn chặc chuyện này, bạn tự chiêm nghiệm các dòng lệnh có chỉ số trong macro (nhất là dòng lệnh mang số 4) sau:
PHP:
Private Sub cmb_MSBV_1_Change()
 Dim Rng As Range, sRng As Range
 Dim Rws As Long, J As Long, W As Integer
 Dim MyAdd As String
 
 With Sheets("List_Quan_Li_Ban_Ve")
    Rws = .[B2].CurrentRegion.Rows.Count
1    Set Rng = .[B1].Resize(Rws)
    Me!lBDS.List = Arr()
 End With
 If Len(Me!cmb_MSBV_1.Text) = 3 Then
2    Set sRng = Rng.Find(Me!cmb_MSBV_1.Text, , xlFormulas, xlPart)
    Arr(1, 1) = "Nothing":          W = 1
3    If Not sRng Is Nothing Then
        Arr(W, 1) = "Mã Ban Ve":            Arr(W, 2) = "Ngày-Tháng"
        MyAdd = sRng.Address
        Do
            W = W + 1:              Arr(W, 1) = sRng.Value
            Arr(W, 2) = sRng.Offset(, 1).Value
            Set sRng = Rng.FindNext(sRng)
        Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
4    Else    '!!!'
        MsgBox "Nothing", , "GPE.COM Xin Chào Mi!"
5    End If
 End If
 Me!lBDS.List = Arr()
End Sub
Cảm ơn anh. Để em thử ạ. Chúc a 1 ngày làm việc vui vẻ.
 
Upvote 0
Web KT

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

Back
Top Bottom