[Help] Phầm mềm nhập và quản lý linh kiện lỗi trong sản xuất (1 người xem)

Liên hệ QC

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

vuvanthe2000

Thành viên mới
Tham gia
29/12/10
Bài viết
34
Được thích
11
Giới tính
Nam
Gửi các bậc tiền bối.
Em đang mày mò học và viết phần mềm VBA nhập và quản lý linh kiện lỗi trong sản xuất.
Tuy nhiên em đang gặp phải một số vấn đề khó khăn nhờ các bậc tiền bối giúp.
1. Code xong vùng tìm kiếm dữ liệu nhưng khi tìm kiếm không ra. ( mong muốn tìm kiếm tương đối, không tìm kiếm tuyệt đối - chỉ cần gõ gần đúng là có thể ra những thứ liên quan)
2. Ở vị trí phân loại lỗi 1 và phân loại lỗi 2. Em mong muốn tạo giống như là Data Vadidation list ( ví dụ: phân loại lỗi 1, và phân loại lỗi 2 sẽ chọn Data Vaddation list từ sheet Luu tru)
3. Em mong muốn chỉ cần nhập mã linh kiện thì tại ô tên linh kiện và Model sử dụng từ khắc hiện ra ( tìm kiếm tại sheet Data base rồi điền tại 2 ô đó)

Chắc phần mềm này còn phải hoàn hiện và thảo luận dài dài.
Mong các tiến bối giúp đỡ và chỉ bảo thêm.
Em xin đính kèm bên dưới
Em cảm ơn!
 

File đính kèm

. . . khó khăn nhờ các bậc tiền bối giúp.
1. Code xong vùng tìm kiếm dữ liệu nhưng khi tìm kiếm không ra. ( mong muốn tìm kiếm tương đối, không tìm kiếm tuyệt đối - chỉ cần gõ gần đúng là có thể ra những thứ liên quan)
2.
3.
Đối tượng bạn tìm kiếm ở đâu?
& vậy vùng tìm kiếm dữ liệu của bạn ở đâu & nó ở trang tính nào?
Theo mình hiểu thì ta cần tìm trên cột mã hay tên linh kiện; Nhưng bạn chưa có danh mục này ở 1 trang nào cả?

Theo mình thì bạn nên bắt đầu thiết kế CSDL cho chuẩn đi cái đã, trước khi nghỉ đến chuyện Code này nọ!
 
Upvote 0
Đối tượng bạn tìm kiếm ở đâu?
& vậy vùng tìm kiếm dữ liệu của bạn ở đâu & nó ở trang tính nào?
Theo mình hiểu thì ta cần tìm trên cột mã hay tên linh kiện; Nhưng bạn chưa có danh mục này ở 1 trang nào cả?

Theo mình thì bạn nên bắt đầu thiết kế CSDL cho chuẩn đi cái đã, trước khi nghỉ đến chuyện Code này nọ!
Cảm ơn bác đã chỉ bảo. Đối tượng tìm kiếm của em mong muốn là mã linh kiện hoặc tên linh kiện.
Về CSDL em chưa tìm hiểu được gì. Mong bác chỉ bảo thêm. Em cảm ơn!
 
Upvote 0
Vấn đề của bạn, theo mình, đầu tiên sẽ phải là xây dựng danh sách mã lỗi thiệt chuẩn
Mình đề xuất danh mục mã lỗi như trong bảng sau:
PHP:
[ATTACH=full]211928[/ATTACH]
Trước tiên với bạn: Danh sách này đầy đủ chưa; Cần bổ sung hay giải thích điều ghì hay không?
Có lẽ theo mình thêm cột bên phải nữa, & đó là giải thích 'Lỗi'

Vấn đề kế tiếp: Bạn nên chuyển bảng dữ liệu ở trang 'Data Base' sang trang mà mình gọi là 'DMuc' này luôn.
Vì lí do, bảng này mình có cảm giác sẽ thay đổi hay bổ sung rất ít trong suốt quá trình hoạt động của CQ bạn.

Rất vui sẽ được thảo luận tiếp với bạn!
 

File đính kèm

  • 1549124725464.png
    1549124725464.png
    6 KB · Đọc: 10
Upvote 0
Gửi các bậc tiền bối.
Em đang mày mò học và viết phần mềm VBA nhập và quản lý linh kiện lỗi trong sản xuất.
Tuy nhiên em đang gặp phải một số vấn đề khó khăn nhờ các bậc tiền bối giúp.
1. Code xong vùng tìm kiếm dữ liệu nhưng khi tìm kiếm không ra. ( mong muốn tìm kiếm tương đối, không tìm kiếm tuyệt đối - chỉ cần gõ gần đúng là có thể ra những thứ liên quan)
2. Ở vị trí phân loại lỗi 1 và phân loại lỗi 2. Em mong muốn tạo giống như là Data Vadidation list ( ví dụ: phân loại lỗi 1, và phân loại lỗi 2 sẽ chọn Data Vaddation list từ sheet Luu tru)
3. Em mong muốn chỉ cần nhập mã linh kiện thì tại ô tên linh kiện và Model sử dụng từ khắc hiện ra ( tìm kiếm tại sheet Data base rồi điền tại 2 ô đó)

Chắc phần mềm này còn phải hoàn hiện và thảo luận dài dài.
Mong các tiến bối giúp đỡ và chỉ bảo thêm.
Em xin đính kèm bên dưới
Em cảm ơn!
Góp ý cho bạn: Nên giải thích rõ ràng, cụ thể hơn, ví dụ:
1/ Tiêu đề cột G3: ES3 của sheet Data Base nó dùng để làm gì?
2/ Sheet Luu tru: Nên phân ra Lỗi Linh kiện và Lỗi thao tác nó gồm những thứ gì? Kê ra để sử dụng Combo phụ thuộc, khi chọn 1 lỗi ở Combo1 nó chỉ xuất hiện những thứ gì lỗi ở Combo2.
3/ Sheet Data: Ý bạn mỗi lần nhập lỗi là 1 dòng hay nhập nhiều lỗi cùng lúc.

Ta phải định hướng đi từng bước cho cụ thể sau đó mới tính đến thiết kế dữ liệu và cuối cùng mới tạo Form. Việc tạo Form ở bài 1 của bạn gần giống như bạn xây nhà mà làm mái nhà trước mà chưa làm nền móng.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn vận hành thử cái ni lúc rỗi:
Xin các bạn cảm fiền vận hành file của #19
 

File đính kèm

  • Mai_12.jpg
    Mai_12.jpg
    295 KB · Đọc: 10
Lần chỉnh sửa cuối:
Upvote 0
Gửi các bậc tiền bối.
Em đang mày mò học và viết phần mềm VBA nhập và quản lý linh kiện lỗi trong sản xuất.
Tuy nhiên em đang gặp phải một số vấn đề khó khăn nhờ các bậc tiền bối giúp.
1. Code xong vùng tìm kiếm dữ liệu nhưng khi tìm kiếm không ra. ( mong muốn tìm kiếm tương đối, không tìm kiếm tuyệt đối - chỉ cần gõ gần đúng là có thể ra những thứ liên quan)
2. Ở vị trí phân loại lỗi 1 và phân loại lỗi 2. Em mong muốn tạo giống như là Data Vadidation list ( ví dụ: phân loại lỗi 1, và phân loại lỗi 2 sẽ chọn Data Vaddation list từ sheet Luu tru)
3. Em mong muốn chỉ cần nhập mã linh kiện thì tại ô tên linh kiện và Model sử dụng từ khắc hiện ra ( tìm kiếm tại sheet Data base rồi điền tại 2 ô đó)

Chắc phần mềm này còn phải hoàn hiện và thảo luận dài dài.
Mong các tiến bối giúp đỡ và chỉ bảo thêm.
Em xin đính kèm bên dưới
Em cảm ơn!
Nên nhờ từng phần, và tìm kiếm trên diễn đàn , có hết cái bạn muốn nhờ rồi
Không nên gọi phần mềm nghe to quá, Excel người ta mới gọi là 1 phần mềm mà thôi, đôi khi gọi cả bộ Office mới là 1 phần mềm
 
Upvote 0
Nên nhờ từng phần, và tìm kiếm trên diễn đàn , có hết cái bạn muốn nhờ rồi
Theo mình trước đó cần xác định các cấu trúc trang tính thật hợp lý để vận hành suông sẻ lâu bền.

& không nhất thiết tách ra 2 loại lỗi như vậy; Gộp chung chúng trong 1 danh sách với 1 bảng gồm 2 cột; 1 cột là mã lỗi & cột kia là Tên lỗi.
 
Upvote 0
Vấn đề của bạn, theo mình, đầu tiên sẽ phải là xây dựng danh sách mã lỗi thiệt chuẩn
Mình đề xuất danh mục mã lỗi như trong bảng sau:
PHP:
[ATTACH=full]211928[/ATTACH]
Trước tiên với bạn: Danh sách này đầy đủ chưa; Cần bổ sung hay giải thích điều ghì hay không?
Có lẽ theo mình thêm cột bên phải nữa, & đó là giải thích 'Lỗi'

Vấn đề kế tiếp: Bạn nên chuyển bảng dữ liệu ở trang 'Data Base' sang trang mà mình gọi là 'DMuc' này luôn.
Vì lí do, bảng này mình có cảm giác sẽ thay đổi hay bổ sung rất ít trong suốt quá trình hoạt động của CQ bạn.

Rất vui sẽ được thảo luận tiếp với bạn!

Cảm ơn hỗ trợ của bác SA_DQ
Chúc mừng năm mới!

Hôm nay em mới khai xuân ạ.
Về đề nghị của bác em đồng ý. Tuy nhiên mục phân loại lỗi và DMuc em cũng có thay đổi nhưng không phải thường xuyên.
Mong bác hỗ trợ giúp.
Em cảm ơn!
 
Upvote 0
Cảm ơn hỗ trợ của bác & Chúc mừng năm mới!
Hôm nay em mới khai xuân ạ. Về đề nghị của bác em đồng ý. Tuy nhiên mục phân loại lỗi và DMuc em cũng có thay đổi nhưng không phải thường xuyên. Mong bác hỗ trợ giúp.
. . . . . . . . .
1. Code xong vùng tìm kiếm dữ liệu nhưng khi tìm kiếm không ra. ( mong muốn tìm kiếm tương đối, không tìm kiếm tuyệt đối - chỉ cần gõ gần đúng là có thể ra những thứ liên quan)
2.
3. Em mong muốn chỉ cần nhập mã linh kiện thì tại ô tên linh kiện và Model sử dụng từ khắc hiện ra ( tìm kiếm tại sheet Data base rồi điền tại 2 ô đó)
Trong trang 'Data' của bạn đang có 10 cột cần nhập liệu
[STT], [Mã LK], [Tên LK],. . . . . . .
Ta lần lượt xử 3 trường này trước trên Form
Trường [STT] ta xét sau nhất trong chúng;
Muốn nhập liệu vô Form, bạn đã phải có trong tay 1 danh sách các mã LK & các lỗi của chúng.
Vậy điều trước tiên là từ tên LK ta cần biết mã LK trong danh sách mà chúng ta thỏa thuận là 'Danh mục linh kiện'
(đến thời điểm này) coi như bạn đang dồng ý với nhau giữa chúng ta là từ tên LK ta sẽ tìm ra mã của LK để nhập vô 2 TextBox tương ứng.
Vậy cách sẽ là: Nhập các ký tự (5) vô 1 TextBox & tìm trong 'DMuc' các linh kiện liên quan & đưa kết quả lên ListBox để bạn chọn 1
Nếu bạn đồng ý ta sẽ tiếp tục
Chú ý: Độ dài 5 kí tự có đủ chưa? Cần thêm hay bớt?

Chờ ý kiến từ bạn
 
Upvote 0
Cảm ơn hỗ trợ của bác SA_DQ
Chúc mừng năm mới!

Hôm nay em mới khai xuân ạ.
Về đề nghị của bác em đồng ý. Tuy nhiên mục phân loại lỗi và DMuc em cũng có thay đổi nhưng không phải thường xuyên.
Mong bác hỗ trợ giúp.
Em cảm ơn!
Tôi đã có góp ý khá rõ ở bài 5, nay thêm trình tự thực hiện.
1/ Mở Form ở Sheet Data tìm loại lỗi để Load dữ liệu của Sheet Data Base vào ListBox bạn chưa cho ý kiến mỗi lần nhập 1 loại lỗi hay nhập nhiều lỗi cùng lúc.
2/ Chọn dữ liệu trong ListBox và nhập liệu.
 
Upvote 0
Trong trang 'Data' của bạn đang có 10 cột cần nhập liệu
[STT], [Mã LK], [Tên LK],. . . . . . .
Ta lần lượt xử 3 trường này trước trên Form
Trường [STT] ta xét sau nhất trong chúng;
Muốn nhập liệu vô Form, bạn đã phải có trong tay 1 danh sách các mã LK & các lỗi của chúng.
Vậy điều trước tiên là từ tên LK ta cần biết mã LK trong danh sách mà chúng ta thỏa thuận là 'Danh mục linh kiện'
(đến thời điểm này) coi như bạn đang dồng ý với nhau giữa chúng ta là từ tên LK ta sẽ tìm ra mã của LK để nhập vô 2 TextBox tương ứng.
Vậy cách sẽ là: Nhập các ký tự (5) vô 1 TextBox & tìm trong 'DMuc' các linh kiện liên quan & đưa kết quả lên ListBox để bạn chọn 1
Nếu bạn đồng ý ta sẽ tiếp tục
Chú ý: Độ dài 5 kí tự có đủ chưa? Cần thêm hay bớt?

Chờ ý kiến từ bạn

Thưa bác SA_DQ, vâng đúng như vậy ạ. Theo em 5 ký tự là đủ rồi.
Vì công ty em quản lý linh kiện dựa vào mã linh kiện do vậy em muốn tìm theo mã linh kiện cho nhanh.
Với lại đây chỉ là bước đầu của việc nhập liệu ( thu thập thông tin) từ dữ liệu này và việc phân loại em sẽ đưa ra các loại biểu đồ phần tích sau ạ.
Xin nhờ bác góp ý và chỉ dạy.
Em cảm ơn!
Bài đã được tự động gộp:

Tôi đã có góp ý khá rõ ở bài 5, nay thêm trình tự thực hiện.
1/ Mở Form ở Sheet Data tìm loại lỗi để Load dữ liệu của Sheet Data Base vào ListBox bạn chưa cho ý kiến mỗi lần nhập 1 loại lỗi hay nhập nhiều lỗi cùng lúc.
2/ Chọn dữ liệu trong ListBox và nhập liệu.

CHÚC MỪNG NĂM MỚI! bác be09.
Cảm ơn góp ý của bác. Từ ô G03 đến ô ES03 chính là tên Model đấy ạ.
Ví dụ mã linh kiện này mà có đánh số 1 ở ô nào thì chính là Model tương ứng.
1. Mỗi lần em nhập một loại linh kiện và 1 loại lỗi.
2. Em chưa hiểu câu hỏi 2 của bác ạ.
 
Upvote 0
CHÚC MỪNG NĂM MỚI! bác be09.
Cảm ơn góp ý của bác. Từ ô G03 đến ô ES03 chính là tên Model đấy ạ.
Ví dụ mã linh kiện này mà có đánh số 1 ở ô nào thì chính là Model tương ứng.
1. Mỗi lần em nhập một loại linh kiện và 1 loại lỗi.
2. Em chưa hiểu câu hỏi 2 của bác ạ.
Nghĩa là tại Sheet Data khi nhấn nút mở Form thì nó lấy danh mục từ Sheet Data Base vào ListBox, sau khi tìm 1 loại lỗi thì nó chỉ hiện thị chỉ loại lỗi đó ở ListBox muốn nhập 1 hay nhiều lỗi cùng lúc thì chỉ việc chọn và nhập liệu.
 
Upvote 0
Nghĩa là tại Sheet Data khi nhấn nút mở Form thì nó lấy danh mục từ Sheet Data Base vào ListBox, sau khi tìm 1 loại lỗi thì nó chỉ hiện thị chỉ loại lỗi đó ở ListBox muốn nhập 1 hay nhiều lỗi cùng lúc thì chỉ việc chọn và nhập liệu.

Đúng rồi đó bác. Ý tưởng của em là. Chỉ cần nhập mã linh kiện. Sẽ tự khắc hiện ra tên linh kiện và các Model sử dụng tương ứng ( vì 1 mã linh kiện có thể dùng chung cho nhiều Model) . Sau đó có những loại lỗi gì ( phân loại lỗi 1 và 2).
Nhờ bác chỉ giúp. Em cảm ơn!
 
Upvote 0
Bạn đã thử vận hành file bài #6 chưa,? sẽ chờ ý kiến của bạn để tiếp, như
Các moden sử dụng của đã có danh sách toàn trong CQ bạn không; Nếu có cần đưa trở thành danh mục chọn trong trang 'DMuc'
Các trường [NoiDung Lỗi] & [Mã lỗi] chắc sẽ không khó;
Hai cột tiếp theo ta nên nhập dạng MM/dd/yyyy nhưng định dạng thành 'DD/mm/yyyy' cho dễ nhìn.

Chờ ý kiến bạn để sau đó ta chuyển sang các nút lệnh.
 
Upvote 0
Bạn đã thử vận hành file bài #6 chưa,? sẽ chờ ý kiến của bạn để tiếp, như
Các moden sử dụng của đã có danh sách toàn trong CQ bạn không; Nếu có cần đưa trở thành danh mục chọn trong trang 'DMuc'
Các trường [NoiDung Lỗi] & [Mã lỗi] chắc sẽ không khó;
Hai cột tiếp theo ta nên nhập dạng MM/dd/yyyy nhưng định dạng thành 'DD/mm/yyyy' cho dễ nhìn.

Chờ ý kiến bạn để sau đó ta chuyển sang các nút lệnh.

Dạ thưa bác SA_DQ. Em vận hành thử rồi ạ.
Em xin được giải thích về model sử dụng như sau:
Ví dụ đối với mã linh kiện: 101002 ( ô -F3) có tên là : PD(DPU511) ( F4) sử dụng cho các Model: ST-P-OM ( K3) , DOS-3 ( L3)... Tức là linh kiện này dùng chung cho nhiều Model.
Còn định dạng ngày em xin phép dùng đúng như của Việt Nam ta là DD/mm/yyyy.
 
Upvote 0
Giờ ta chuyển sang thảo luận về 3 cái nút lệnh
1./ Thêm vào (chắc là thêm mới)
2./ Sửa
3./ Cập nhật

(1) dễ & hiểu rồi; Còn chuyện (2) & (3) là sao? Sao ta không gộp 2 cái nút lại làm 1
Gộp lại bạn sẽ khó khăn gì?
(*) Các nút còn lại dễ hiểu.

ĐT của mình có thể tìm thấy trong: https://www.giaiphapexcel.com/diend...lưu-lúc-11h00-ngày-05-01-2019-tại-hcm.139767/
 
Upvote 0
Giờ ta chuyển sang thảo luận về 3 cái nút lệnh
1./ Thêm vào (chắc là thêm mới)
2./ Sửa
3./ Cập nhật

(1) dễ & hiểu rồi; Còn chuyện (2) & (3) là sao? Sao ta không gộp 2 cái nút lại làm 1
Gộp lại bạn sẽ khó khăn gì?
(*) Các nút còn lại dễ hiểu.

ĐT của mình có thể tìm thấy trong: https://www.giaiphapexcel.com/diendan/threads/gặp-gỡ-giao-lưu-lúc-11h00-ngày-05-01-2019-tại-hcm.139767/

Gộp 2 nút lại làm 1 cũng được ạ.
 
Upvote 0
Khi ta thực hiện quá trình nhập mới, ta sẽ phải lấy dữ liệu từ 'DMuc' cho các Control mã LK & Tên LK
Nhưng khi ta tìm các chỉ tiêu này để sửa nội dung đã nhập trước đó (như Model, mã lỗi, Lỗi hoặc các ngày. . ., . . . ) ta cần tìm & lấy dữ liệu từ trang 'Data'
Bạn vận hành thử file này
 

File đính kèm

Upvote 0
Khi ta thực hiện quá trình nhập mới, ta sẽ phải lấy dữ liệu từ 'DMuc' cho các Control mã LK & Tên LK
Nhưng khi ta tìm các chỉ tiêu này để sửa nội dung đã nhập trước đó (như Model, mã lỗi, Lỗi hoặc các ngày. . ., . . . ) ta cần tìm & lấy dữ liệu từ trang 'Data'
Bạn vận hành thử file này
Cảm ơn bác SA_DQ . Cháu đã vận hành thử rồi tuy nhiên có một số điều thắc mắc như ảnh đính kèm nhờ bác sửa giúp ạ.
Ngoài ra, cháu có một điều nhờ nho nhỏ nhờ bác giúp. Cháu mới học VBA nên việc đọc mã code vẫn còn ngu ngơ. Vì vậy cảm phiền bác ghi comment bên cạnh code được không ạ?
Cháu cảm ơn bác
 

File đính kèm

  • lk loi.JPG
    lk loi.JPG
    113.1 KB · Đọc: 19
Lần chỉnh sửa cuối:
Upvote 0
. . . . . đã vận hành thử rồi tuy nhiên (1) có một số điều thắc mắc như ảnh đính kèm nhờ bác sửa giúp ạ.
(2) Ngoài ra, cháu có một điều nhờ nho nhỏ nhờ bác giúp. Cháu mới học VBA nên việc đọc mã code vẫn còn ngu ngơ. Vì vậy cảm phiền bác ghi comment bên cạnh code được không ạ?
(1) Thắc mắc thì giải đáp; Không thể thắc mắc thì nhờ sửa được.
(1.1) Về danh mục các Moden bạn có đưa ra đâu mà bảo người khác tạo List để bạn chọn kia chứ?
(1.2) Bạn muốn tách ra 2 cấp độ lỗi thì cứ việc tách theo mong muốn; Dù sao cũng đã cung cấp cho bạn cơ sở để tách: Đó là kí tự đầu của mã lỗi rồi đấy thay

(2) Còn chuyện dịch từ ngôn ngữ VBA sang tiếng Việt thì bạn cứ đánh dấu những dòng lệnh mà bạn còn mơ hồ; Mình sẽ chỉ diễn dịch các dòng í; Bạn tìm cách chú thích vô theo ý bạn hiểu là được.
Còn bạn vẫn muốn diễn dịch hết thì trươc tiên bạn hãy diễn dịch các macro mà bạn đã viết đi đã.
 
Upvote 0
(1.1) Về danh mục các Moden bạn có đưa ra đâu mà bảo người khác tạo List để bạn chọn kia chứ?

Thưa bác SA_DQ, trong sheet Dmuc có sẵn thông tin Model sử dụng rồi ạ. Ví dụ hình ảnh cháu gửi. Linh kiện có mã là 101002 sử dụng cho các Model: ST-P-OM, DOS-3...
 

File đính kèm

  • model.JPG
    model.JPG
    146.7 KB · Đọc: 7
Upvote 0

File đính kèm

  • try1.JPG
    try1.JPG
    95.9 KB · Đọc: 16
  • try2.JPG
    try2.JPG
    194.4 KB · Đọc: 20
  • Idea_loi LK.JPG
    Idea_loi LK.JPG
    54 KB · Đọc: 14
Upvote 0
Ba cái hình đó chả nói lên điều gì ra hồn.
Khoan hãy nói về mã lỗi & danh sách hay chuyện nhập nó.
Giờ nên xoay quanh vấn đề mới nổi cộm là hiện nội dung ComboBox đúng như mã linh kiện đã chọn.
Những lần tới mình sẽ không xem các hình nữa đâu; Mô tả công việc bằng lời đi thôi.
 
Upvote 0
Giờ nên xoay quanh vấn đề mới nổi cộm là hiện nội dung ComboBox đúng như mã linh kiện đã chọn.

Với cháu thì hiển thị như vậy là được rồi ạ. Chỉ cần nhập mã linh kiện vào và hiển thị lên những Model gần đúng liên quan như thế này còn tuyệt vời hơn hiển thị ra kết quả tuyệt đối.
 
Lần chỉnh sửa cuối:
Upvote 0
Mình sẽ diễn dịch macro (cha trước, 2 con bài sau) dùng để tìm mã linh kiện & tên linh kiện trong trang 'DMuc' & trong trang 'Data' đã được chọn
Macro cha/mẹ có nội dung sau:
PHP:
Private Sub tbTimMa_Change()
1 Dim ShName As String

20 If Len(Me!tbTimMa.Text) <> 4 Then Exit Sub
If Me!cbSh.Text = "Danh Muc" Then
22    ShName = "DMuc"
ElseIf Me!cbSh.Text = "Data" Then
24    ShName = "Data"
End If
30 ReDim Ar0(1 To 99, 1 To 10)
Ar0(1, 2) = "Mã":                       Ar0(1, 3) = "Tên Linh Kiên"
32 W = 1:                                          Ar0(2, 2) = "Nothing"
Ar0(1, 1) = "STT"
34 Set Sh = ThisWorkbook.Worksheets(ShName)
40 If ShName = "DMuc" Then
    TimMaLinhKien
42    Me!TxtSoTT.Value = 1 + Me!tbSTT.Value
ElseIf ShName = "Data" Then
44    Ar0(1, 4) = "Model":                Ar0(1, 5) = "Lôi là"
    Ar0(1, 6) = "Mã"
46    MaLKDaNhap
End If
50 If W Then
    Me.lbDS.List = Ar0()
52 End If
Set Sh = Nothing
End Sub
D1: Khai báo 1 biến kiểu chuỗi để xài lúc cần
D20: Tạo điều kiện chỉ chạy macro khi ta nhập vô Control chuỗi 4 kí số
D21: Nếu nội dung chứa trong ComboBox là 'Danh Muc' thì thực hiện ngay dòng lệnh D22
D23: Nếu trong ComboBox chứa chuỗi 'Data' thì thực thi D24
Hai lệnh D22 & D24 là gán tên trang tính tương ứng vô biến
D30: Khai báo 1 biến mảng gồm ~ trăm dòng & mươi cột
D31: D33 Ta ấn định trước các chuỗi cho các phần tử thuộc dòng d9a662u của mảng vừa khai báo
D40: Điều kiện nếu tên trang tính chứa trong biến chuỗi là 'DMuc' thì cho chạy macro con có tên là 'TimMaLinhKien'
D42: Gán số thứ tự cho dòng dữ liệu sẽ nhập
Điều kiện Nếu tên trang tính tương ứng là 'Data' thì thực hiện các lệnh từ D44 đến D46
3 mệnh đề dòng lệnh 44->45 : Xem lại tương tự D31: D33
D46: Gọi macro con tương ứng chạy (Tìm mã LK & tên LK đã nhập trong trang 'Data'
D50-D52: Gán mảng dữ liệu lên ListBox
D53: Xóa biến đối tượng dùng chung Sh
 
Lần chỉnh sửa cuối:
Upvote 0
Mã:
 W = 1:                     Ar0(2, 2) = "Nothing"
(1)
Vì ta đã đưa các tiêu đề trường (cột) nên W sẽ phải là 1 để ghi tiếp vô dòng W=2 những dữ liệu tìm thấy;
Ta ghi trước Ar0(2,2) là chuỗi 'Nothing' để khi không tìm thấy dữ liệu ListBox báo ta biết là không tìm thấy (DL)

(2) Mã của bạn gồm 6 kí số; & macro hiện tại chọn 4 kí số đầu để tìm kiếm trong các trang.
Nếu tăng lên 5 thì: Danh sách tìm thấy sẽ ít hơn đi;
Nhưng như vậy bộ nhớ của bạn vể mã linh kiện sẽ phải vất vả hơn thôi.
Người ngoại đạo như mình thì những con số đó là vô tri giác; Trong ngành, nên tự bạn phải quyết định 4 hay 5 cho công việc của bạn suông sẻ.
 
Upvote 0
Bác SA_DQ cho cháu hỏi là cháu viết mã lệnh sau vào Sub button Thêm vào:

If txtSott.Vaule = "" Then
MsgBox "Ban nhap thieu du lieu", vbExclamation, "Thông báo"
Exit sub
End If

Như này có đúng không ạ mà cháu thấy không chạy được. Ý của cháu muốn là: nếu ô nhập dữ liệu Số TT không có thì sẽ không cho nhập dữ liệu.

Ngoài ra nhờ bác giải thích giúp cháu nốt 2 đoạn mã lệnh con.
Cháu cảm ơn!
 
Upvote 0
Thì bạn viết thử vầy:
Mã:
If Len(Me!txtSott.Text) = 0 Then
   MsgBox "Ban Nhâp Thiêu Du Liêu", vbExclamation, "Thông báo"
  Exit sub
Else
    Msgbox "Xin Chúc Ban Thành Công!",, "GPE.COM"
End If

PHP:
Sub TimMaLinhKien()
   Dim W As Integer, J As Long, Rws As Long  '<=|  Khai Báo Các Biến  '
    Dim Arr()
     Rws = Sh.[E2].CurrentRegion.Rows.Count   ' Lây Sô Dòng Của Vùng Gán Vô Biên    '
    'Nap Du Liêu Vô Biên Mang  :   '
     Arr() = Sh.[E2].Resize(Rws, 2).Value:          W = 1   ' Ân Dinh Tri Cho Biên Dêm   '
    For J = 1 To UBound(Arr())
        If CStr(Left(Arr(J, 1), 4)) = Me!tbTimMa.Text Then  'Nêu Thoa D/K Thì Ghi Vô Mảng Kêt qua   '
            W = W + 1:                          Ar0(W, 2) = Arr(J, 1)
            Ar0(W, 3) = Arr(J, 2):              Ar0(W, 1) = W
        End If
    Next J
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Thì bạn viết thử vầy:
Mã:
If Len(Me!txtSott.Text) = 0 Then
   MsgBox "Ban Nhâp Thiêu Du Liêu", vbExclamation, "Thông báo"
  Exit sub
Else
    Msgbox "Xin Chúc Ban Thành Công!",, "GPE.COM"
End If

PHP:
Sub TimMaLinhKien()
   Dim W As Integer, J As Long, Rws As Long  '<=|  Khai Báo Các Biến  '
    Dim Arr()
     Rws = Sh.[E2].CurrentRegion.Rows.Count   ' Lây Sô Dòng Của Vùng Gán Vô Biên    '
    'Nap Du Liêu Vô Biên Mang  :   '
     Arr() = Sh.[E2].Resize(Rws, 2).Value:          W = 1   ' Ân Dinh Tri Cho Biên Dêm   '
    For J = 1 To UBound(Arr())
        If CStr(Left(Arr(J, 1), 4)) = Me!tbTimMa.Text Then  'Nêu Thoa D/K Thì Ghi Vô Mảng Kêt qua   '
            W = W + 1:                          Ar0(W, 2) = Arr(J, 1)
            Ar0(W, 3) = Arr(J, 2):              Ar0(W, 1) = W
        End If
    Next J
End Sub

Cảm ơn bác SA_DQ,
Bác cho cháu hỏi là cháu viết đoạn Code như này vào txtTenLK sai ở đâu mà không chạy được ạ?

TxtTenLK.Value = Application.WorksheetFunction.VLookup(TxtMaLK.Value, Sheet2.Range("E2:F10000"), 2, False)

Ý của muốn là nếu đánh mã linh kiện trực tiếp vào Textbox TxtMaLK thì dùng hàm VLoopup tìm kiếm trong sheet DMuc ra được tên LK và điền vào ô TextBox Tên Linh kiện.
Cháu đang học Code nên viết thử nhiều trường hợp để học ạ.
 
Upvote 0
Bạn sao không chọn trong danh sách của ListBox mà đi xài VLOOKUP của Excel?
Có khi nào bạn nhập mã mà không có trong danh mục sẽ báo lỗi?
. . . ?
 
Upvote 0

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

Back
Top Bottom