Sử dụng VBA để lọc theo nhiều điều kiện.

Liên hệ QC

tamhoncuada10313

Thành viên thường trực
Tham gia
7/4/08
Bài viết
221
Được thích
65
Em muốn khi gõ mã vào sheet Nhatkysuachua thì sẽ dò tìm xem mã đó đã có trong danh mục chưa và tổng hợp báo cáo theo dữ liệu của nhật ký sửa chữa
 

File đính kèm

  • QLTB ver1.1 (version 1).xls
    61.5 KB · Đọc: 93
Bạn xem lại, lần trước mình sai lầm nghiêm trọng! Cho xin lỗi

Trong file, mình đã đưa vô tên 'ChungLoai' đã có của bạn, mình làm thêm Name 'MaTBi'
Khi đó bạn sẽ chọn từ danh sách mã thiết bị có trong 'DanhMuc', mà khỏi ấy nấy sẽ nhập sai mã thiết bị.
(Khi xuất hiện hộp thoại "Chua Co Ma Thiet Bi Nay ", có nghĩa là trong trang tính 'THSCh' chưa có thiết bị này ở đó.


PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Columns("B:B")) Is Nothing Then
    Dim Sh As Worksheet
    Dim Rng As Range, sRng As Range
    
    Set Sh = Sheets("THSCh")
    Set Rng = Sh.Range(Sh.[b7], Sh.[b7].End(xlDown))
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
            Target.Offset(, 1).Resize(, 6).Value = sRng.Offset(, 1).Resize(, 6).Value
            Target.Offset(, -1).Value = sRng.Offset(, -1).Value
    Else
                     MsgBox "Chua Co Ma Thiet Bi Nay " & Target.Value
    End If
 End If
End Sub
Một lần nữa xin thành thật xin lỗi bạn!
 

File đính kèm

  • GPE.rar
    19.9 KB · Đọc: 186
Lần chỉnh sửa cuối:
Cám ơn bác đã giúp.
Nhưng sao khi em nhập thử thì nó lại bị lỗi:nếu mã nhập vào chưa có trong danh mục khi xóa đi thì nó mới hiện lên msg. Và em không muốn sử dụng validation để kiểm tra vì có khi số thiết bị lên tới hơn 100 mà dùng list validation thì không tiện lắm.
Hơn nữa ở sheet tổng hợp. Em muốn lọc những thiết bị ở nhật ký theo những điều kiện nhất định chứ không phải là sheet nào có trong nhật ký thì đều đưa vào sheet tổng hợp.Bác giúp em nhé.Cám ơn bác
 
Lần chỉnh sửa cuối:
Và em không muốn sử dụng validation để kiểm tra vì có khi số thiết bị lên tới hơn 100 mà dùng list validation thì không tiện lắm.
Mình có đánh số trong đoạn lệnh vừa thêm.
& bạn bỏ giúp Validation trường đó gùm mình nha.
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Columns("B:B")) Is Nothing Then
    Dim Sh As Worksheet
    Dim Rng As Range, sRng As Range
    
1    Set Sh = Sheets("DanhMuc")
    Set Rng = Sh.Range(Sh.[b5], Sh.[b5].End(xlDown))
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If sRng Is Nothing Then
        MsgBox "Chua Co Ma Thiet Bi Nay " & Target.Value, , "BAN XEM LAI"
        Target.Value = "":              Exit Sub
7    End If
    Set Sh = Sheets("THSCh")
    Set Rng = Sh.Range(Sh.[b7], Sh.[b7].End(xlDown))
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        Target.Offset(, 1).Resize(, 6).Value = sRng.Offset(, 1).Resize(, 6).Value
        Target.Offset(, -1).Value = sRng.Offset(, -1).Value
    Else
        MsgBox "Chua Co Ma Thiet Bi Nay " & Target.Value, , "GPE.COM"
    End If
 End If
End Sub
Hơn nữa ở sheet tổng hợp. Em muốn lọc những thiết bị ở nhật ký theo những điều kiện nhất định chứ không phải là sheet (?) nào có trong nhật ký thì đều đưa vào sheet tổng hợp.Bác giúp em nhé.Cám ơn bác
Mình hình dung là chép từ trang tính 'THSCh' sang 'NKSCh' là yêu cầu của bạn (?!);
Chúng ta cần làm rõ nghĩa chuyện này đó, mình chưa được rõ cho lắm. :-=
 
Bác ơi! sao khi em xóa một mã ở sheet NKSCh đi thì msg "Ma thiet bi nay chua co" cu hien len hoai ma khong mat di. Em dùng name động để gán cho danh mục thiết bị nhập vào tên là "DM". Em muốn so sánh mã nhập vào ở NKSCh với "DM" nhưng không biết viết code ra sao
 
Lần chỉnh sửa cuối:
Bác ơi! sao khi em xóa một mã ở sheet NKSCh đi thì msg "Ma thiet bi nay chua co" cu hien len hoai ma khong mat di. Em dùng name động để gán cho danh mục thiết bị nhập vào tên là "DM". Em muốn so sánh mã nhập vào ở NKSCh với "DM" nhưng không biết viết code ra sao
Ừ nhỉ!, vậy thì trong câu lệnh
Mã:
[COLOR=#000000][COLOR=#0000bb]Target[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]""[/COLOR][COLOR=#007700]:              Exit [/COLOR][COLOR=#0000bb]Sub[/COLOR][/COLOR]
ta bỏ đoạn đầu, từ dấu ':' trở về trước. & thử lại xem giúp nha.
 
Lần chỉnh sửa cuối:
Bác TQ ơi nhưng làm sao khi em xóa mã thiết bị ở sheet NKSCh thì lại cứ hiện lên msg
 
Web KT
Back
Top Bottom