Đề bài: Có 2 Sheet. Sheet 1 là danh sách khách hàng lọc bằng Validation. Sheet 2 là các Hồ sơ về khách hàng. Câu hỏi là khi ấn tên khách hàng bất kỳ bên sheet 1 thì các thông tin về Hồ sơ của khách hàng bên sheet 2 sẽ nhảy ra đầy đủ. Cụ thể như file đính kèm. Cám ơn các ace rất nhiều./.
Đề bài: Có 2 Sheet. Sheet 1 là danh sách khách hàng lọc bằng Validation. Sheet 2 là các Hồ sơ về khách hàng. Câu hỏi là khi ấn tên khách hàng bất kỳ bên sheet 1 thì các thông tin về Hồ sơ của khách hàng bên sheet 2 sẽ nhảy ra đầy đủ. Cụ thể như file đính kèm. Cám ơn các ace rất nhiều./.
1. Sửa lại cấu trúc một chút cho dễ làm nhé: Di chuyển ô B1 xuống ô B2, thêm cho ô B1 một cái tiêu đề trùng với tiêu đề ô A3 bên Sheet2 ("Tên" chẳng hạn).
2. Sử dụng code sau cho Sheet1:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$2" Then Exit Sub
Sheet2.[A3].CurrentRegion.AdvancedFilter 2, [B1:B2], [A4:C4]
End Sub[/GPECODE]
Cám ơn anh rất nhiều. Cho em hỏi thêm một chút. Nếu em để cái tiêu đề tên ở ô A2 để cho thẩm mỹ gióng sang B2 là tên luôn thì sẽ ko khớp với bên kia. Nếu làm thế thì phải sửa thế nào ạ.
Cám ơn anh rất nhiều. Cho em hỏi thêm một chút. Nếu em để cái tiêu đề tên ở ô A2 để cho thẩm mỹ gióng sang B2 là tên luôn thì sẽ ko khớp với bên kia. Nếu làm thế thì phải sửa thế nào ạ.
Muốn dùng AdvancedFilter trong trường hợp vùng tiêu chuẩn không sử dụng công thức thì bắt buộc phải có tiêu đề (ô B1) trùng với tiêu đề bên bảng dữ liệu gốc. Do đó, nếu vì tính thẩm mỹ này thì bạn cứ để kệ ô B1 có tiêu đề như vậy nhưng ẩn nó đi (bằng cách Format Cells thành dạng ;;; hoặc định dạng màu chữ) hoặc phải sử dụng công thức cho vùng tiêu chuẩn.
Một cách sử dụng công thức có thể tham khảo là thế này: Bạn sử dụng công thức sau cho ô A5 của Sheet1 và fill cho vùng cần chứa kết quả (3 cột, còn hàng thì bao nhiêu tùy bạn):
Cám ơn anh đá giúp . Em tìm cái này mãi để làm giờ mới có người giúp, thế này thì tốt rồi . Cho em hỏi một chút nữa. Nếu Danh sách khách hàng nằm ở sheet khác mình lấy sang sheet 1 và bị trùng lặp và có khoảng trống. Làm sao để dùng validation thì ko bị trùng (chỉ hiện 1 tên) và ko có khoảng trống. Em đã xem nhiều code trên diễn đàn nhưng khi áp dụng vào sheet của mình lại ko được anh có thể hướng dẫn giúp em với nhé. Cám ơn anh nhiều./.
Cám ơn anh đá giúp . Em tìm cái này mãi để làm giờ mới có người giúp, thế này thì tốt rồi . Cho em hỏi một chút nữa. Nếu Danh sách khách hàng nằm ở sheet khác mình lấy sang sheet 1 và bị trùng lặp và có khoảng trống. Làm sao để dùng validation thì ko bị trùng (chỉ hiện 1 tên) và ko có khoảng trống. Em đã xem nhiều code trên diễn đàn nhưng khi áp dụng vào sheet của mình lại ko được anh có thể hướng dẫn giúp em với nhé. Cám ơn anh nhiều./.
Thông thường trong trường hợp này nếu dùng code thì người ta hay sử dụng cách AdvancedFilter với tùy chọn Unique:=True để loại bỏ trùng, còn muốn không có khoảng trống thì thiết lập vùng tiêu chuẩn cho phù hợp là được, chẳng hạn vùng tiêu chuẩn có thể là thế này:
Tiêu đề cột
*
Cách thức là như thế, còn cụ thể ra sao thì lại phải tùy thuộc từng trường hợp. Bạn đưa file lên thì sẽ dễ nghiên cứu hơn.
Ví dụ Sheet 1 mình Validation từ Danh sách sheet3 (rất nhiều tên trùng nhau và khoảng trống), để validation ko có tên trùng và khoảng trắng mình sẽ làm thế nào ạ. Chi tiết file đính kèm.
Ví dụ Sheet 1 mình Validation từ Danh sách sheet3 (rất nhiều tên trùng nhau và khoảng trống), để validation ko có tên trùng và khoảng trắng mình sẽ làm thế nào ạ. Chi tiết file đính kèm.
Cái vụ này mà nhờ em "Đít to" ra tay thì tuyệt vời: Bạn sử dụng code sau cho Sheet1
[GPECODE=vb]Private Sub Worksheet_Activate()
Dim Tmp, i As Long, S As String
Tmp = Sheet3.Range(Sheet3.[A1], Sheet3.[A65000].End(xlUp))
With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(Tmp)
If Not IsEmpty(Tmp(i, 1)) Then
S = Tmp(i, 1)
If Not .Exists(S) Then .Add S, ""
End If
Next
[B2].Validation.Delete
[B2].Validation.Add xlValidateList, , , Join(.Keys, ",")
End With
End Sub[/GPECODE]
Bây giờ bạn thử thêm danh sách vào Sheet3, có thể trùng, có thể cách quãng rồi chọn lại Sheet1, nhấn vào ô B2 xem sao.
Cho em hỏi: file Excel mình có sử dụng VBA. Để trên một máy chủ và share cho mọi người nhập dữ liệu và sử dụng, nhưng trên máy khác ko gọi được code VBA đã làm trong máy chủ ra để thực hiện. Anh có code nào để giúp máy con có thể dùng được VBA như máy chủ không ạ. Em cám ơn nhiều
Thân gửi anh nghiaphuc (Hoàng Nghĩa Phúc) cùng các ace diễn đàn. Em có thêm một câu hỏi nhỏ tiếp theo trong chủ đề này mà anh nghiaphuc đã trả lời cho em. Câu hỏi trước là cách lọc dữ liệu từ sheet này sang sheet khác, vậy để lọc dữ liệu từ các sheet sang một sheet thì làm thế nào ạ. Anh chị vui lòng xem file đính kèm với ạ. Em cám ơn rất nhiều./.
May mắn quá, em không phải dân chuyên nành nên lâu nay cứ copy từ sheet2 sang paste vào sheet1.
Giờ gặp đúng cái mình muốn tìm mà không tài nào hiểu được :'( Nhờ các bác giúp em với. Em có đính kèm file đây ạ:
Ô C15 của sheet1 tương ứng Cột C:C của sheet2.
Từ ô C23 của sheet1 tương ứng phần mô tả bên cột D của Sheet2.
May mắn quá, em không phải dân chuyên nành nên lâu nay cứ copy từ sheet2 sang paste vào sheet1.
Giờ gặp đúng cái mình muốn tìm mà không tài nào hiểu được :'( Nhờ các bác giúp em với. Em có đính kèm file đây ạ:
Ô C15 của sheet1 tương ứng Cột C:C của sheet2.
Từ ô C23 của sheet1 tương ứng phần mô tả bên cột D của Sheet2.
Bác @Ba Tê ơi, em muốn lọc như code của bác @nghiaphuc cơ ạ, sáng nay em thử thì cách lọc đó mới edit nội dung của vùng mô tả bên sheet2 được. Còn giải pháp của bác thì chịu :'(
Thank bác
Bác @Ba Tê ơi, em muốn lọc như code của bác @nghiaphuc cơ ạ, sáng nay em thử thì cách lọc đó mới edit nội dung của vùng mô tả bên sheet2 được. Còn giải pháp của bác thì chịu :'(
Thank bác
Hàng ngày em có nhập liệu các xe vận chuyển vào 1 file tên "tonghop cac xe"; em muốn mỗi lần nhập liệu xong thì các xe tự động nhảy qua các sheet "xe672" hoặc "xe683" theo từng xe nhưng em ko đặt được công thức ạ. Xin các bác cho em ít thời gian với !!!
Muốn dùng AdvancedFilter trong trường hợp vùng tiêu chuẩn không sử dụng công thức thì bắt buộc phải có tiêu đề (ô B1) trùng với tiêu đề bên bảng dữ liệu gốc. Do đó, nếu vì tính thẩm mỹ này thì bạn cứ để kệ ô B1 có tiêu đề như vậy nhưng ẩn nó đi (bằng cách Format Cells thành dạng ;;; hoặc định dạng màu chữ) hoặc phải sử dụng công thức cho vùng tiêu chuẩn.
Một cách sử dụng công thức có thể tham khảo là thế này: Bạn sử dụng công thức sau cho ô A5 của Sheet1 và fill cho vùng cần chứa kết quả (3 cột, còn hàng thì bao nhiêu tùy bạn):
Hàng ngày em có nhập liệu các xe vận chuyển vào 1 file tên "tonghop cac xe"; em muốn mỗi lần nhập liệu xong thì các xe tự động nhảy qua các sheet "xe672" hoặc "xe683" theo từng xe nhưng em ko đặt được công thức ạ. Xin các bác cho em ít thời gian với !!!