Căn cứ mã thiết bị để điền thông tin liên quan

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 làm như sau, mong các bác giúp: giả sử em nhập vào mã là co01tclt thì ở 2 cột bên cạnh sẽ căn cứ vào mã này mà tự động điền thông tin
VD:co01tclt thì căn cứ vào 2 ký tự đầu biết đây là máy để bàn, căn cứ vào 2 ký tự tc của mã biết đơn vị dùng là phòng Tổ chức hành chính.
Em chỉ biết dùng công thức match, index nhưng không biết dùng như thế nào.
Thêm nữa là em muốn gán sẵn công thức cho sheet bằng VBA để người dùng chỉ việc nhập dữ liệu thôi chứ không cần phải kéo công thức thì làm như thế nào.
 

File đính kèm

  • QLTB ver1.1.xls
    26.5 KB · Đọc: 38
Lần chỉnh sửa cuối:
Bạn nên phổ biến macro này, những ai xài qua sẽ nhớ đến bạn đó nghe!

Hướng dẫn vài điều trước khi dùng:
* Phải Copy macro này & dán vô ngăn SheetName Macro của 'DanhMuc'
* Tại Sheets("Data") mình gán 2 tên mới; đó là DVi & TBi tương ứng 2 vùng là:
'E2:E26' & 'G2:G26'
(*) Nhập vô cột 'B' chuỗi gồm trên 6 ký tự, 2 ký tự đầu & 2 ký tự từ thứ 5 phải là ký tự trùng với mã quy ước của bạn; Có thể nhập chữ in hay chữ thường đều đặng.

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, sRng As Range
    If Len(Target) < 7 Then Exit Sub
    Set Sh = Sheets("Data")
    Set sRng = Sh.Range("TBi").Find(UCase(Left(Target, 2)), , xlFormulas, xlWhole)
    If sRng Is Nothing Then
        MsgBox "Chua Co Ma Thiet Bi!":         Exit Sub
    Else
        Target.Offset(, 1) = sRng.Offset(, -1).Value
    End If
    Set sRng = Sh.Range("DVi").Find(UCase(Mid(Target, 5, 2)), , , xlPart)
    If sRng Is Nothing Then
        MsgBox "Ban Da Nham Ma Don Vi!":         Exit Sub
    Else
        Target.Offset(, 2) = sRng.Offset(, -1).Value
    End If
 End If
End Sub
 
Lần chỉnh sửa cuối:
Em muốn thêm điều kiện la mã nhập vào không được trùng nhau thì làm thế nào ạ?
 
Em muốn thêm điều kiện la mã nhập vào không được trùng nhau thì làm thế nào ạ?

Bạn thay câu lệnh

Mã:
If Len(Target) < 7 Then Exit Sub

bằng đoạn lệnh sau:
PHP:
    If Len(Target) < 7 Then
        Exit Sub
    Else
        Dim Rng As Range
        Set Rng = Range([B5], [b65500].End(xlUp).Offset(9))
        Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
        If Not sRng Is Nothing And sRng.Address <> Target.Address Then
            MsgBox "Da Nhap Trung Ma",,"GPE.COM":           Target.Value = ""
            Exit Sub
        End If
    End If
 
Em lại làm phiền bác tí nữa. Em muốn nó tự động kẻ khung cho mình luôn thì chèn code như thế nào ạ?
 
Em muốn nhập đến đâu kẻ khung đến đấy.Em đã up lại file rồi.Bác giúp em nhé
 
Bạn dùng formatcondtional với điều kiện là các ô đó có dữ liệu.
 
Em có câu hỏi cũng trùng với chủ đề của bác chủ thread nên đặt câu hỏi ở đây luôn cho khỏi rác diễn đàn
Em muốn điền thông tin liên quan nhưng chỉ dựa trên 2 ký tự cuối của Mã thiết bị, mà tên mã thiết bị có nhiều hơn 2 chữ
VD: có mã là XHN, GHN, DHN ---> thông tin là Hà Nội
XSG, GSG, CSG, DSG ---> thông tin là Sài Gòn
GDN, BDN, CDN ---> thông tin là Đà Nẵng
Vậy sử dụng hàm như thế nào để có kết quả, xin cảm ơn các bác (vì em mới làm quen với excel)
 
Web KT

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

Back
Top Bottom