Giúp em code lọc dữ liệu từ nhiều sheet sang sheet khác với điều kiện trong Textbox ở Form

Liên hệ QC

nhnn1986

Thành viên hoạt động
Tham gia
30/10/17
Bài viết
108
Được thích
19
Giới tính
Nam
Em chào Anh/Chị ạ

Em mong muốn code VBA chạy lọc dữ liệu từ sheet(nb) và sheet(ngb) sang sheet(ky1) và (sheet(ky2) với điều kiện:

Code khi mới chạy sẽ hiện Form trong đó có 02 Textbox để gõ điều kiện .
- Nếu cả 02 Textbox đều trống hoặc chỉ cần Textbox1 trống thì sẽ không làm gì cả và thoát Sub
- Nếu Textbox1 có gõ điều kiện vào thì Textbox2 có hay không có vẫn chạy Sub với lệnh tiếp theo:
=> Với điều kiện tại Textbox1 code sẽ dò tìm tại Cột A cả 02 sheets(nb) và sheet(ngb) => bất cứ dòng nào thỏa điều kiện thì copy sang sheet(ky1)
=> Với điều kiện tại Textbox2 (nếu có) code sẽ dò tìm tại Cột A cả 02 sheets(nb) và sheet(ngb) => bất cứ dòng nào thỏa điều kiện thì copy sang sheet(ky2).

Em có thử code như file đính kèm nhưng vẫn lỗi gì đó. Mong anh chị xem code trong file và giúp em với ạ

Em ví dụ khi gõ vào Textbox1: aaaaa001-201908 hoặc aaaaa001 thì sẽ copy các dòng thỏa điều kiện tại Cột A của các sheets(nb) và sheet(ngb) sang sheet(ky1).
Ý của em mong muốn khi gõ aaaaa001-201908 hoặc aaaaa001 đều sẽ có tác dụng vì phần 201909 đằng sau nếu giống thì không phải gõ.
Cảm ơn ANh/Chị diễn đàn
 

File đính kèm

Em chào Anh/Chị ạ

Em mong muốn code VBA chạy lọc dữ liệu từ sheet(nb) và sheet(ngb) sang sheet(ky1) và (sheet(ky2) với điều kiện:

Code khi mới chạy sẽ hiện Form trong đó có 02 Textbox để gõ điều kiện .
- Nếu cả 02 Textbox đều trống hoặc chỉ cần Textbox1 trống thì sẽ không làm gì cả và thoát Sub
- Nếu Textbox1 có gõ điều kiện vào thì Textbox2 có hay không có vẫn chạy Sub với lệnh tiếp theo:
=> Với điều kiện tại Textbox1 code sẽ dò tìm tại Cột A cả 02 sheets(nb) và sheet(ngb) => bất cứ dòng nào thỏa điều kiện thì copy sang sheet(ky1)
=> Với điều kiện tại Textbox2 (nếu có) code sẽ dò tìm tại Cột A cả 02 sheets(nb) và sheet(ngb) => bất cứ dòng nào thỏa điều kiện thì copy sang sheet(ky2).

Em có thử code như file đính kèm nhưng vẫn lỗi gì đó. Mong anh chị xem code trong file và giúp em với ạ

Em ví dụ khi gõ vào Textbox1: aaaaa001-201908 hoặc aaaaa001 thì sẽ copy các dòng thỏa điều kiện tại Cột A của các sheets(nb) và sheet(ngb) sang sheet(ky1).
Ý của em mong muốn khi gõ aaaaa001-201908 hoặc aaaaa001 đều sẽ có tác dụng vì phần 201909 đằng sau nếu giống thì không phải gõ.
Cảm ơn ANh/Chị diễn đàn
Cái này mình nghĩ bạn đầu tư thêm chút nữa là được.Mà cho cái ví dụ thì cũng phải xem là khi có kết quả thì nó lấy những cái gì và gán vào dòng nào chứ.Thế bạn muốn tìm tương đối hay tuyệt đối.
 
Upvote 0
Dạ em muốn tìm tương đối thôi ạ. Lúc em chạy thử có nhấn vào chữ "ans1" thì thấy nó có giá trị = 0. Như vậy là giá trị ans1 không thể lấy từ Textbox1 trong Form CDKT, em đoán code này lỗi ở Textbox và Form mà không biết nhiều nên chịu thua ạ.

Để hiện Form điền điều kiện vào textbox em chọn CDKT.show
Tuy nhiên điền xong rồi đóng Form em lại chọn "Unload me" => Có kả năng Unload Me là textbox về 0 hết.

Em nghĩ tới được nhiêu đó mà không rõ sửa thế nào, anh giúp em cái sự kiện sau khi điền Texbox và Unload Form thì giá trị vẫn gán ở ans1 với ạ.
 
Upvote 0
Dạ em muốn tìm tương đối thôi ạ. Lúc em chạy thử có nhấn vào chữ "ans1" thì thấy nó có giá trị = 0. Như vậy là giá trị ans1 không thể lấy từ Textbox1 trong Form CDKT, em đoán code này lỗi ở Textbox và Form mà không biết nhiều nên chịu thua ạ.

Để hiện Form điền điều kiện vào textbox em chọn CDKT.show
Tuy nhiên điền xong rồi đóng Form em lại chọn "Unload me" => Có kả năng Unload Me là textbox về 0 hết.

Em nghĩ tới được nhiêu đó mà không rõ sửa thế nào, anh giúp em cái sự kiện sau khi điền Texbox và Unload Form thì giá trị vẫn gán ở ans1 với ạ.
Tôi bị "Yếu trong mình" nên "chơi tanh bành" trên sheet luôn, chứ "màu mè" với Form mà không "nên thân" làm chi cho cực.
 

File đính kèm

Upvote 0
Tuyệt vời anh @Ba Tê , mà do em đang làm thêm các việc khác ở trên mẫu Form rồi nên mới cần làm trên Form luôn cho đồng bộ ạ.

Nhờ file anh em lại có thêm 01 cách cực hay và nhanh nữa hi hi
 
Upvote 0
Em chào Anh/Chị ạ

Em mong muốn code VBA chạy lọc dữ liệu từ sheet(nb) và sheet(ngb) sang sheet(ky1) và (sheet(ky2) với điều kiện:

Code khi mới chạy sẽ hiện Form trong đó có 02 Textbox để gõ điều kiện .
- Nếu cả 02 Textbox đều trống hoặc chỉ cần Textbox1 trống thì sẽ không làm gì cả và thoát Sub
- Nếu Textbox1 có gõ điều kiện vào thì Textbox2 có hay không có vẫn chạy Sub với lệnh tiếp theo:
=> Với điều kiện tại Textbox1 code sẽ dò tìm tại Cột A cả 02 sheets(nb) và sheet(ngb) => bất cứ dòng nào thỏa điều kiện thì copy sang sheet(ky1)
=> Với điều kiện tại Textbox2 (nếu có) code sẽ dò tìm tại Cột A cả 02 sheets(nb) và sheet(ngb) => bất cứ dòng nào thỏa điều kiện thì copy sang sheet(ky2).

Em có thử code như file đính kèm nhưng vẫn lỗi gì đó. Mong anh chị xem code trong file và giúp em với ạ

Em ví dụ khi gõ vào Textbox1: aaaaa001-201908 hoặc aaaaa001 thì sẽ copy các dòng thỏa điều kiện tại Cột A của các sheets(nb) và sheet(ngb) sang sheet(ky1).
Ý của em mong muốn khi gõ aaaaa001-201908 hoặc aaaaa001 đều sẽ có tác dụng vì phần 201909 đằng sau nếu giống thì không phải gõ.
Cảm ơn ANh/Chị diễn đàn
Thử file
 

File đính kèm

Upvote 0
Dạ tuyệt vời ạ @HieuCD , thay code luôn hí hí.

À còn 1 yêu cầu nhỏ xíu là nếu kỳ 1 không điền thì exit Sub luôn ạ. em xem code mà nhìu chỗ chưa hiểu nên không dám mò.
 
Upvote 0
Dạ tuyệt vời ạ @HieuCD , thay code luôn hí hí.

À còn 1 yêu cầu nhỏ xíu là nếu kỳ 1 không điền thì exit Sub luôn ạ. em xem code mà nhìu chỗ chưa hiểu nên không dám mò.
Chỉnh sub trong Form
Mã:
Private Sub CommandButton1_Click()
  If Len(TextBox1.Text) Then
    Call Filter(TextBox1.Text, TextBox2.Text)
    TextBox1.Text = ""
    TextBox2.Text = ""
  Else
    MsgBox ("Phai nhap ký tu do tim vao vung Ky 1")
  End If
  CDKT.Hide
End Sub
hoặc bỏ luôn thông báo
Mã:
Private Sub CommandButton1_Click()
  If Len(TextBox1.Text) Then
    Call Filter(TextBox1.Text, TextBox2.Text)
    TextBox1.Text = ""
    TextBox2.Text = ""
  End If
  CDKT.Hide
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom