Giúp thêm tùy biến Macro

Liên hệ QC

thienthanvuive

Thành viên mới
Tham gia
25/2/08
Bài viết
22
Được thích
5
Mô tả công việc: Cty mình sx nhiều loại máy theo đơn đặt hàng, với mỗi loại máy sẽ dùng các linh kiện có trong bảng linh kiện. Khi sx loại máy này gần xong chuyển sang loại máy khác thì bọn mình phải chuẩn bị sẵn linh kiện để làm. Khi chuyển từ loại máy đang sx sang loại máy sắp sx thì mình phải tra trong bảng linh kiện xem linh kiện nào dùng chung và cái nào dùng riêng để chuẩn bị.
-Trong file excel mình gửi lên đây có 3 sheet: "Du lieu", "sheet1" và "Ket qua". Ở "Du lieu" có tất cả linh kiện các loại máy và có thể hiện các loại máy dùng loại linh kiện nào (dấu ●), tất cả mình để AutoFilter.
-Giả sử đang sx loại máy 3 và sắp chuyển sang sx loại máy 21, bình thường mình làm như sau: Ẩn các cột loại máy 1 và 2, ẩn các cột loại máy từ 4 đến 20, ẩn các cột loại máy 22 đến 47 -> còn lại cột loại máy 3 và 21 cùng với tất cả mã và tên linh kiện nhưng nhìn sẽ rất nhiều và không cần thiết. Sau đó ở cột loại máy 3 (đang sx) thì AutoFilter chọn "all", còn cột loại máy 21 (sắp sx) thì AutoFilter chọn "●", kết quả ở trong sheet "Ket qua". Như vậy nhin sẽ biết loại máy sắp sx cần những loại linh kiện nào ngắn gọn hơn.
-Mình đã thu Macro công việc vừa rồi, nhưng chỉ làm được loại máy 3 sang loại máy 21, còn nếu từ loại máy x sang loại máy y (x và y trong 49 loại) thì chịu. Mình nhờ các bạn giúp mình thêm tùy biến để: Ở "sheet1" có lựa chọn loại máy đang sx sang loại máy sắp sx, mình chỉ cần chọn trong "sheet1" và ấn nút chạy macro thì sẽ cho ra kết quả, kết quả này thể hiện ở sheet nào cũng được miễn là chương trình chạy nhanh.
Cám ơn các bạn nhiều!
 

File đính kèm

Chào bạn!
Tôi cũng chưa hiểu lắm nhưng cứ làm đại, bạn xem thử thế nào, nếu có trục trặc thì ta sửa tiếp
Trước khi chạy macro, hảy nhập loại máy đang sx vào cell E1, nhập loại máy sắp sx vào cell E2 (Chỉ nhập số, ko dc nhập Text)...
Ví dụ:
Loại máy đang sx là loại máy 5, vậy nhập số 5 vào cell E1
Loại máy sắp sx là loại máy 9, vậy nhập số 9 vào cell E2
Cuối cùng chạy macro thử xem! Bạn hảy tùy biến thêm theo ý mình nhé
Mến
ANH TUẤN
 

File đính kèm

Upvote 0
Cảm ơn bạn nhiều, thế này cũng được. Nhưng bạn có thể làm thế này không nhé:
Trước khi chạy macro, hảy nhập loại máy đang sx vào cell E1, nhập loại máy sắp sx vào cell E2 (Chỉ nhập số, ko dc nhập Text)...
--> Trước khi chạy macro chọn loại máy đang sx trong list ở cell E1, chọn loại máy sắp sx trong list ở cell E2 ( List loại máy mình tạo từ Data -> Validation, trong Allow của Setting mình chọn List ...)
Bởi vì sau này sẽ phát triển lên hàng trăm loại máy, và mỗi loại máy sẽ có tên riêng cho dễ nhớ chứ không như bây giờ.
 
Upvote 0
Tất nhiên là dc... thêm 1 ComboBox nữa là xong! (cách sử dụng ComboBox chắc bạn biết chứ.. gần giống Validation... Click phải chuột vào ComboBox, chọn Format Control để biết chi tiết)... Còn Loại máy thì bạn hảy nhập vào cột A sheet DATA nhé
Lần này thì khỏi bấm nút "Macro", cứ chọn vào ComboBox thì macro sẽ chạy!
ANH TUẤN
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
anhtuan1066 đã viết:
Click phải chuột vào ComboBox, chọn Format Control để biết chi tiết)...
ANH TUẤN
1.Mình tạo ComboBox, nhưng khi Click phải chuột vào lại ko có chức năng "Assign Macro", ngoài ra khi click phải chuột vào ComboBox, trong Format Control lại không có tab Control như của bạn
2.
Sub All()
Application.ScreenUpdating = False
Range("VDK").EntireColumn.Hidden = False
For i = 8 To 54
Selection.AutoFilter Field:=i
Next i
Application.ScreenUpdating = True
End Sub

Bạn tạo Range("VDK") như thế nào vậy? Mình tạo mãi ko được nên làm Range("H4:BB")

Giúp mình nhé!
 
Upvote 0
Có 2 loại Object: 1 cái thuộc thanh Control Toolbox, 1 cái thuộc thanh Forms... Cái của tôi là cái thuộc thanh Forms, còn như bạn nói có lẽ cái bạn đang làm thuộc thanh Control Toolbox...
Nói chung cái nào cũng dc, nhưng cách thức thao tác có khác nhau... Với công việc đơn giản thì dùng loại Form sẽ dể sử dụng hơn...
Bạn Click phải chuột trên thanh Toolbars, chọn Forms.. trong này sẽ thấy có ComboBox
Còn Range("VDK") chính là Range("H4:BB4")... Tuy nhiên tôi khuyên bạn nên làm theo cách của tôi, lở 1 ngày nào đó bạn Insert Column hoặc Row thì cách dùng Range("H4:BB4") sẽ sai ngay lập tức... Nhìn sơ qua cũng hiểu tại sao sai.. Vì khi ấy H4:BB4 đã thành địa chỉ khác rồi, đúng ko?
Muốn tạo tên cho H4:BB4 thành VDK thì bạn làm như sau:
1> Quét chọn vùng H4:BB4
2> Vào menu Insert\Name Define rồi gõ tên VDK vào khung "Name in Workbook"
Từ đây nếu có thay đổi gì trong bảng tính, như chèn dòng, chèn cột thì VDK sẽ tự động cập nhật theo địa chỉ mới, hạn chế dc sai sót
Ngay cả số 8 54 trong For i = 8 To 54 đúng ra cũng phải sửa lại theo cách tôi vừa nói.. nhưng sợ làm nhiều quá bạn sẽ rối... từ từ nhé!
Mến
ANH TUẤN
 
Upvote 0
Nhờ bạn chỉnh sửa file mình gửi bên dưới, file này mình hay sử dụng nhưng macro thì mình ko làm ra và mình cũng ko biết nhiều nên ko sửa đc (yêu cầu phải cài máy in vì có Sub printpreview() - xem trước khi in, nếu ko có máy in thì bạn có thể bỏ ko cho chạy sub này cũng được).
+Mô tả: khi mình nhập số (ví dụ số 1) vào 1 hoặc nhiều hàng bất ký của cột A hoặc cột B rồi ấn nút "chay thoi nao ..." thì macro sẽ chạy và sẽ cho xem qua trước khi in --> Nhược điểm là nhập số bất kỳ thì cũng chỉ cho in ra 1. Chẳng hạn như nhập 5 vào cell B9 và chạy macro, đến cuối trong sheet "Box_Sign_B" chỉ được 1 ô trong khi mình cần in ra 5 ô (sheet này có 12 ô/1 trang in, ô thừa ko có j in ra cũng được)
+Mình cần xóa 4 cột C, E, J, K vì ko sử dụng -> khi chạy macro sẽ báo lỗi, các bạn sửa lỗi giúp mình.
+Các bạn có thể thêm macro vào để khi chạy màn hình ko nhấp nháy mà hiện ra thanh báo % của tiến trình làm việc được không?
+Khi sửa được các bạn ghi luôn chú thích vào macro để mình biết nhé (chẳng hạn bỏ lệnh, thêm lệnh, sửa cái j đó trong lệnh ...)
Thanks ALL!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Đọc file xong hỏng hiểu gì ráo trọi... Cả 1 rừng... Bạn ơi, chỉ cái nào cần thiết cho câu hỏi mơi đưa lên... Bạn đưa hết 1 đóng nhìn chóa mắt luôn
ANH TUẤN
Cái này hoạt động gần giống bảng lương trên diễn đàn. Khi mình nhập số để in 1 mã hàng nào đó gần giống như nhập số để in bảng lương của nhân viên. Chẳng hạn cần in 10 bảng lương của 1 nhân viên:
http://i289.photobucket.com/albums/ll202/quanghuy_a1980/nhapso.jpg
nhưng kết quả chỉ in có 1:
http://i289.photobucket.com/albums/ll202/quanghuy_a1980/ketqua.jpg
Ý của mình là nhờ bạn sửa giúp để có thể in được nhiều, ví dụ nhập 5 thì có thể in được ra 5 bảng (chứ ko phải là 5 tờ A4 đâu nhé ..)
Cám ơn trước nha!
 
Upvote 0
Web KT

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

Back
Top Bottom