Thiết lập tuỳ chọn mã hàng (1 người xem)

  • Thread starter Thread starter nhatky@
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

nhatky@

Thành viên mới
Tham gia
1/10/11
Bài viết
24
Được thích
0
Em có bài này nhờ các cao thủ thiết lập dùm cho em nhe!
 

File đính kèm

Em có bài này nhờ các cao thủ thiết lập dùm cho em nhe!
1. Chuẩn hóa tiêu đề của 2 sheet cho giống nhau.
2. Thiết lập công thức cho ô A2: =IF(B1="","",B1) để làm tiêu chuẩn lọc (có thể cho ẩn hàng hoặc chọn màu chữ trùng với màu nền để đỡ vướng).
3. Sử dụng code sau cho sheet BC:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Or Target.Address <> "$B$1" Then Exit Sub
    [A5:B10000].Clear
    Sheet1.[A1].CurrentRegion.AdvancedFilter xlFilterCopy, [A1:A2], [A4:B4]
End Sub
 

File đính kèm

Upvote 0
@nghiaphuc ơi, làm thế này thì mình cũng làm được rùi. Nhưng ý mình muốn là: Khi chọn mã khách hàng ở ô B1 và click chuột vào vùng từ A5:A16 thì nó chỉ hiện ra mã hàng và tên hàng của mã khách hàng đó thôi ah!
 
Upvote 0
@nghiaphuc ơi, làm thế này thì mình cũng làm được rùi. Nhưng ý mình muốn là: Khi chọn mã khách hàng ở ô B1 và click chuột vào vùng từ A5:A16 thì nó chỉ hiện ra mã hàng và tên hàng của mã khách hàng đó thôi ah!
Thì code trên thực hiện đúng việc đó mà: chọn mã hàng ở B1 thì sẽ lọc ra những mã hàng và tên hàng ứng với mã khách hàng đó. Tuy nhiên, mình không hiểu chỗ màu đỏ nhằm mục đích gì, tại sao sau khi chọn mã tại B1 rồi lại phải "click chuột vào vùng từ A5:A16" nữa?
 
Upvote 0
Ý mình là: Nếu click chuột vào vùng ("A5:A16") của sheet BC thì nó sẽ hiện ra một list chọn mã hàng và tên hàng của khách hàng đó. Khi đó ta chọn mã hàng nào thì nó sẽ cập nhật mã hàng đó vào cột A và tên hàng vào cột B ah!?
 
Upvote 0
Ý mình là: Nếu click chuột vào vùng ("A5:A16") của sheet BC thì nó sẽ hiện ra một list chọn mã hàng và tên hàng của khách hàng đó. Khi đó ta chọn mã hàng nào thì nó sẽ cập nhật mã hàng đó vào cột A và tên hàng vào cột B ah!?
À, hiểu rồi, ý bạn muốn tạo Validation List động. Tuy nhiên việc đặt mã hàng của bạn chưa phù hợp (1 mã không thể dùng chung cho 2 mặt hàng). Mình làm như sau:
1. Tạo các name động:
Mã:
KH=OFFSET(DATA!$A$1,1,,COUNTA(DATA!$A:$A)-1)
DL=OFFSET(KH,,1)
MH=IF(BC!$B$1="",DL,OFFSET(DATA!$B$1,MATCH(BC!$B$1,KH,0),,COUNTIF(DATA!$A:$A,BC!$B$1)))
2. Sử dụng Validation cho vùng A5:A30 với Source là =MH
3. Lập công thức cho cột B để lấy tên hàng:
Mã:
B5=IF(A5="","",VLOOKUP(A5,OFFSET(DL,0,0,,2),2,0))
4. Sử dụng code sau để khi chọn mã khách hàng thì xóa dữ liệu vùng A5:A30:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Or Target.Address <> "$B$1" Then Exit Sub
    [A5:A30].ClearContents
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
1. Chuẩn hóa tiêu đề của 2 sheet cho giống nhau.
2. Thiết lập công thức cho ô A2: =IF(B1="","",B1) để làm tiêu chuẩn lọc (có thể cho ẩn hàng hoặc chọn màu chữ trùng với màu nền để đỡ vướng).
3. Sử dụng code sau cho sheet BC:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Or Target.Address <> "$B$1" Then Exit Sub
    [A5:B10000].Clear
    Sheet1.[A1].CurrentRegion.AdvancedFilter xlFilterCopy, [A1:A2], [A4:B4]
End Sub
Trời má ơi! Dùng Advanced Filter từ đời nào đến giờ mới biết có chiêu lạ này ---> Cứ tưởng lọc bằng AF là phải lọc tất tần tật, không ngờ nó có thể lựa chọn cột tùy ý
Cảm ơn nghiaphuc nhé
 
Upvote 0
Trời má ơi! Dùng Advanced Filter từ đời nào đến giờ mới biết có chiêu lạ này ---> Cứ tưởng lọc bằng AF là phải lọc tất tần tật, không ngờ nó có thể lựa chọn cột tùy ý
Cảm ơn nghiaphuc nhé
Bây giờ em mới nhớ lại cái vụ CopyPicture bữa trước, nếu mình nhập tiêu đề trước thì khỏi cần cái Intersect(.Cells, .Offset(, 1)) đúng không anh?
 
Upvote 0
Thầy nghiaphuc có thể chuyển qua MS2003 cho em học hỏi.Xin cám ơn.
 
Upvote 0
Nhấn nút Thanks rồi vẫn phải viết vài dòng cám ơn Thầy nghiaphuc
 
Upvote 0
Web KT

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

Back
Top Bottom