Tạo một nút ấn để copy các Cells theo điều kiện cho sẵn.

Liên hệ QC

hijac

Thành viên mới
Tham gia
21/12/09
Bài viết
12
Được thích
0
Mình có một sheet với dữ liệu có sẵn gồm có các hàng và cột như sau:

IDnameCountryGenderBirthdayNote
1000AVNM1964
1001BRUF1964
1002cENM1964
1003AJPF1964
1004BGEM1964
1005cCHIF1967
1006AVNM1964
1007DRUF1964
1008EENM1965
1009DJPF1964
1010FGEM1964
1011ACHIF1964
1012DVNM1964
1013ERUF1964
1014DENM1964
1015FJPF1964
các bạn giúp mình tạo một sheet mới có 1 button sao cho có thể lấy dữ liệu tại bảng trên điền vào bảng có sẵn trong sheet mới này.
IDnameCountryBirthday
1001
1007
1008
1010
1011
1014
gửi các bạn file đính kèm.
Cám ơn các bạn
 

File đính kèm

  • test.xlsx
    18.4 KB · Đọc: 17
Cám ơn bạn mình đã sử dụng Advanced Filter nhưng khi chuyển sang tạo button và viết code thi do không rành về lập trình nên nhờ các bạn chỉ giúp.
Mình đã ghi lại macro như sau:
Sub Macro1()
'
' Macro1 Macro
'

Sheets("Sheet1").Select
Range("B3").Select
Sheets("Sheet1").Select
Range("B3,C3,E3").Select
Range("E3").Activate
Selection.Copy
Sheets("sheet can tao").Select
Range("B2").Select
ActiveSheet.Paste
Range("B3").Select
Sheets("Sheet1").Select
Range("B9:C9,E9").Select
Range("E9").Activate
Application.CutCopyMode = False
Selection.Copy
Sheets("sheet can tao").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("B10,C10,E10").Select
Range("E10").Activate
Application.CutCopyMode = False
Selection.Copy
Sheets("sheet can tao").Select
Range("B4").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("B12,C12,E12").Select
Range("E12").Activate
Application.CutCopyMode = False
Selection.Copy
Sheets("sheet can tao").Select
Range("B5").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("B13,C13,E13").Select
Range("E13").Activate
Application.CutCopyMode = False
Selection.Copy
Sheets("sheet can tao").Select
Range("B6").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Range("B16,C16,E16").Select
Range("E16").Activate
Application.CutCopyMode = False
Selection.Copy
Sheets("sheet can tao").Select
Range("B7").Select
ActiveSheet.Paste
End Sub
nhưng có 2 vấn đề chưa làm được:
1.Làm sao để add đoạn code trên vào Command button
2.Mình muốn sửa đoạn code sao cho tìm theo cột ID trong "sheet can tao" nếu gặp cell có ID trùng với ID trong "Sheet 1" thì thực hiện copy các giá trị trong cột name, country và Birthday tương ứng vào "sheet can tao"
 
Lần chỉnh sửa cuối:
Upvote 0
1. Nếu muốn add code vào thì copy và dán vào hoặc vẽ 1 cái nút rồi assign macro vào
2. Sao không sử dụng hàm vlookup cho gọn, cần gì sử dụng VBA
 
Upvote 0
1.Mình đã add được code như bạn chỉ rồi cám ơn bạn
2.Vì "sheet can tao" mình sử dụng như là sheet điều kiện (các số liêu trong cột ID sau này sẽ thay đổi) nên mình muốn sửa đoạn code để lấy lần lượt từng cell trong cột ID của "sheet can tao" và so sánh với cột ID của "sheet1" (Đây là sheet chứa dữ liệu cần tách ra) nếu trùng thì sẽ copy 3 cells tương ứng trong các cột name, country và Birthday vào "sheet can tao".
 
Upvote 0
Bạn xem thử cách củ chuối này nha.
 

File đính kèm

  • test.xls
    58 KB · Đọc: 39
Upvote 0
Cám ơn bạn về đoạn code ngắn mà đã giải được bài toán của mình, trong đoạn code đó có 2 đoạn code mình không hiểu:
1. n = Cells(2, 1).End(xlDown).Row - gán cho biến n = giá trị của cell cuối cùng ???
2.Cells(r, 2).Formula = "= NAME"
Cells(r, 3).Formula = "= CT"
Cells(r, 4).Formula = "= BD"
+ Số 2,3,4 là thứ tự cột B,C,D ???
+Sử dụng hàm Vlookup rồi gán cho các hằng CT, BD, NAME
+ Cells(r, 2).Formula thì mình không hiểu
Bạn có thể giải thích giúp mình không ? Hoặc Bạn làm ơn chỉ cho mình có thể đọc tài liệu nào nói về code này.
 
Lần chỉnh sửa cuối:
Upvote 0
1. kiểm tra thông tin đến dòng nào
2. Cells(row,column) >> Cells(r,2) có nghĩa là ô B2 cho vòng lặp lần thứ nhất, đến vòng lặp lần 2 thì r có giá trị la 3 >> lúc đó công thức sẽ gán vào B3

Vì khả năng mình còn kém nên không biết giải thích thế nào cho bạn dể hiểu hơn
 
Upvote 0
1. Mình hiểu rồi nhưng để hiểu cặn kẽ "tại sao ' thì chắc phải học lập trình VB for Excel
2. Nếu thay vì tìm trong Sheet 1 mình muốn tìm trong 1 workbook khác thì làm sao add được đường dẫn trong khi File workbook đó hoăc đang mở hay không mở và nằm cùng thư mục của file chưa đoạn mã.
 
Upvote 0
Theo mình nghĩ thì yêu cầu của bạn có thể thực hiện được, nhưng nếu bạn cần hỗ trợ thì nên đưa file lên, các anh chị trên diễn đàn sẽ cùng nhau nghiên cứu và giúp cho bạn
 
Upvote 0
Chào bạn
Mình đang có chỗ không hiểu trong phần gán cho Name.
tham khảo từ file của Bạn khi bạn tạo Name (thí dụ như: BD )được gán bằng Hàm Vlookup, mình view thử thì thây sao khi con trỏ trên màn hình ở đâu thì giá trị table_array cũng thay đôi theo.
Ví dụ khi mình để con trỏ tại: cell I22 thì công thức là:
Name BD
=VLOOKUP('sheet can tao'!F22,Sheet1!F:J,5,0)
 
Upvote 0
Chào bạn,

Nếu bạn muốn sử dụng hàm trong VBA thi dùng cái này
Cells(r, 2).Value = Application.VLookup(Cells(r, 1).Value, Sheets("Sheet1").Range("A:E"), 2, 0)
Cells(r, 3).Value = Application.VLookup(Cells(r, 1).Value, Sheets("Sheet1").Range("A:E"), 3, 0)
Cells(r, 4).Value = Application.VLookup(Cells(r, 1).Value, Sheets("Sheet1").Range("A:E"), 5, 0)

Bạn tham khảo file đính kèm, nếu chưa rõ thì mình bàn tiếp. Cách sử dụng hàm trong VBA khác với sử dụng trực tiếp trong excel
 

File đính kèm

  • test.xls
    59.5 KB · Đọc: 19
Upvote 0
Cám ơn bạn đã chỉ cho mình cách sử dụng hàm trong VBA.
Với mục đích dùng Sheet1 như file độc lập và là file chứa sheet1 là dữ liệu nguồn, Sheet cần tạo nằm trong 01 file khác có cùng thư mục với file source.Do không hiểu về lập trình, Mình sử dụng phương pháp move sheet1 ra 1 workbook mới và đặt tên là source.xls.
kết quả :
+Nếu sử dụng name như trường hợp đầu tiên thì địa chỉ file chứa sheet1 được tự động gán cho Name và chương trình chạy OK
+Nếu sử dụng hàm trong VBA thì mình không biết cách gán địa chỉ để hàm Vlookup tham chiếu đến.Bạn chỉ giúp mình nhé.
 
Upvote 0
Ban tham khảo file đính kèm. Bạn mở code ra và thử thay thế hoặc sửa lại code và cho chạy thử và nghiên cứu kết quả, dần dần sẽ hiểu thôi.
Phương án của mình là mở file nguồn trong cùng thư mục, lấy dữ liệu và đóng file nguôn lại.
 

File đính kèm

  • TEST.rar
    19.9 KB · Đọc: 20
Upvote 0
Thanks my teacher !
I changed SOURCE TO SOURCE.XLS
 
Upvote 0
Nếu hệ thống của bạn show extention for known files thi phải thêm .xls vào. Mình quên để ý điều này. Thanks for reminding.
 
Upvote 0
Web KT
Back
Top Bottom