Làm VBA cho bảng tiến độ sản xuất

  • Thread starter Thread starter LikeIt
  • Ngày gửi Ngày gửi
Liên hệ QC

LikeIt

Thành viên tiêu biểu
Tham gia
16/6/06
Bài viết
415
Được thích
254
Nghề nghiệp
Others
Gửi các Bác,

Em có một file về "theo dõi tiến độ kế hoạch sản xuất" trong đó phần tính tiến độ em muốn sử dụng VBA, nhưng em không biết làm, rất mong sự trợ giúp của các bác về vấn đề này. Cái này sử dụng cho một cty chuyên về SX nhưng qui mô nhỏ, mục đích vừa theo dõi đc tiến độ sản xuất các mã hàng nhỏ, vừa lắm đc năng lực SX của chính cty này, để xem có nên nhận hàng hay không nhận hàng nữa không? Chi tiết trong file đính kèm. Mong nhận đc sự hỗ trợ của các bác.

Chân thành cảm ơn.
NHT
 

File đính kèm

Muốn xem qua thế nào, rất tiếc máy không đọc được *.xlsx
 
Upvote 0
Có thể do file em làm bằng excel2007 nên hơi bất tiện, em xin gửi bản 2003 để mọi người xem giúp em.tks
 

File đính kèm

Upvote 0
Sao mình load xuong nhưng bạn để fomảt đo thi ko mở dược9.
 
Upvote 0
Bạn mở ở bài #3 xem sao, mình đã convert sang 2003 rồi mà
 
Upvote 0
Tôi đã xem file của anh,mặc dù dữ liệu ở đây là giã lập nhưng xin hỏi anh một số vấn đề:
-thời gian chế tạo chuẩn được tính cho 1 sản phẩm và 1 công nhân chế tạo,vậy số công nhân trong 1 chuyền sx không lẽ không ảnh hưởng đến năng suất lao động của 1 chuyền trong 1 ngày
-khi ký hợp đồng làm sao anh đã có được thời gian chế tạo chuẩn để tính toán đến năng suất lao động(loại trừ khả năng của riêng anh đã có nhiều kinh nghiệm nhìn sp có thể dự đoán chính xác năng suất có thể đạt được
-Anh có chắc chắn tiến độ của anh lập từ khi ký hợp đồng là thực hiện được đúng tiến độ,khách hàng giao nguyên phụ liệu đúng thời gian
-Theo tôi đây là lập tiến độ sản xuất khi đã có đầy đủ các yếu tố đảm bảo cho sx liên tục .
-Vấn đề nhận đơn hàng khi ký hợp đồng theo tôi chỉ có thể xây dựng trên cơ sở năng lực tổng thể của nhà máy tính trên năng suất bình quân khi qui đổi về sản phẩm chuẩn và doanh thu bình quân tháng có xem xét yếu tố ngày giao hàng.Nếu năng lực nhà máy có thể đạt được 1tr USD/tháng nhưng giao hàng lại chỉ tập trung vào giữa tháng trong khi trước đó kế hoạch đều sát đến từng ngày như bảng dữ liệu vậy anh có thể nhận hợp đồng 1 tr USD của tháng đó không hay phải đàm phán với khách hàng đẩy kế hoạch giao hàng xuống cuối tháng hay sang tháng sau.Nếu có thể được anh có thể tính toán năng lực sản xuất theo tuần là tốt nhất(ở đây tôi chỉ đề cập kế hoạch sx ngắn hạn của doanh nghiệp làm gia công phụ thuộc vào khách hàng)
 
Upvote 0
Tạm trước để xin ý kiến

3-Ở MH5 em có một chút mâu thuẫn với câu 2 là đáng lẽ phải bắt đầu từ ngày 5/8,
nhưng do MH1 xong ngày 31/7 nên em ghép luôn line1 làm từ ngày 1/8 (ko biết cái này VBA có linh hoạt đc ko?)
còn từ ngày mùng 6/8 các line kia sẽ auto đổi thành màu khác và tính từ ngày bắt đầu theo như trên bảng trên

5-Làm thế nào để tính nhiều dòng cho em, vì các mã hàng sẽ còn rất nhiều bên dưới nhưng ở đây em chỉ lấy VD 5 mã hàng thôi, còn cột thì đã làm từ tháng đến
tháng 12 trong một năm là đủ,ko biết có làm dc trên word2003 không các bác? Vì sợ quá nhiều cột
6- Nếu không có ngày bắt đầu và ngày kết thúc thì màu sẽ ko hiện nên
(3): Nếu đôn lên thì phải cho biết điều kiện để đôn? Theo mình hiểu thì không thể gặp SF nào xong thì đôn các SF dưới lên; Như vậy phải làm 2 cột phụ để còn đôn lên lần hai, lần ba. . . nữa?
(5)E2003 có số cột ít hơn 366 +8 là hiển nhiên, nếu vậy có 2 cách:
* Nhờ bạn nào ý viết VBA trong E2007
* Ghi trên 2 sheet mỗi sheet 8 tháng ( 2 tháng đầu & cuối gối đầu nhau)
(6) thực hiện không khó & sau khi làm rõ (3)

Trong khi chờ đợi í bạn, mình tạm đưa lên cái này & hãy thử trước nó & cho ý kiến tiếp:(Chú ý: mình đã đổi tên sheets("TienDo") rồi - Nên sửa lại theo ý bạn)
PHP:
Option Explicit

Sub TienDo()
 Dim lRow As Long, jJ As Long
 Dim bColor As Byte, lCol As Byte
 Dim NgBD As Date, NgKT As Date
 Dim Clls As Range, Rng As Range

 Sheets("TDo").Select:           lRow = [b65432].End(xlUp).Row
 lCol = [IV3].End(xlToLeft).Column
 For jJ = 4 To lRow
   With Cells(jJ, 2)
      bColor = .Interior.ColorIndex
      
      NgBD = .Offset(, 3):      NgKT = .Offset(, 4)
      Set Rng = Range(Cells(jJ, 9), Cells(jJ, lCol))
      For Each Clls In Rng
              
         If Clls.Offset(3 - jJ) >= NgBD And Clls.Offset(3 - jJ) < NgKT Then
            Clls = .Offset(, 2):       Clls.Interior.ColorIndex = bColor
         End If
          
      Next Clls
   End With
 Next jJ
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Tôi đã xem file của anh,mặc dù dữ liệu ở đây là giã lập nhưng xin hỏi anh một số vấn đề:
-thời gian chế tạo chuẩn được tính cho 1 sản phẩm và 1 công nhân chế tạo,vậy số công nhân trong 1 chuyền sx không lẽ không ảnh hưởng đến năng suất lao động của 1 chuyền trong 1 ngày
-khi ký hợp đồng làm sao anh đã có được thời gian chế tạo chuẩn để tính toán đến năng suất lao động(loại trừ khả năng của riêng anh đã có nhiều kinh nghiệm nhìn sp có thể dự đoán chính xác năng suất có thể đạt được
-Anh có chắc chắn tiến độ của anh lập từ khi ký hợp đồng là thực hiện được đúng tiến độ,khách hàng giao nguyên phụ liệu đúng thời gian
-Theo tôi đây là lập tiến độ sản xuất khi đã có đầy đủ các yếu tố đảm bảo cho sx liên tục .
-Vấn đề nhận đơn hàng khi ký hợp đồng theo tôi chỉ có thể xây dựng trên cơ sở năng lực tổng thể của nhà máy tính trên năng suất bình quân khi qui đổi về sản phẩm chuẩn và doanh thu bình quân tháng có xem xét yếu tố ngày giao hàng.Nếu năng lực nhà máy có thể đạt được 1tr USD/tháng nhưng giao hàng lại chỉ tập trung vào giữa tháng trong khi trước đó kế hoạch đều sát đến từng ngày như bảng dữ liệu vậy anh có thể nhận hợp đồng 1 tr USD của tháng đó không hay phải đàm phán với khách hàng đẩy kế hoạch giao hàng xuống cuối tháng hay sang tháng sau.Nếu có thể được anh có thể tính toán năng lực sản xuất theo tuần là tốt nhất(ở đây tôi chỉ đề cập kế hoạch sx ngắn hạn của doanh nghiệp làm gia công phụ thuộc vào khách hàng)

Cảm ơn Anh đã hỏi, ở đây em chỉ lập cho một cty qui môt rất nhỏ (chưa đến 100 lao động) nên kế hoạch ở đây chỉ lập theo tháng thôi không theo năm.
-Còn về kế hoạch thì lập lên để tiện trong việc điều hành tiến độ, vì qua khảo sát ở cty này ko có kế hoạch và tiến độ sx, có thể ko chính xác, nhưng trong quá trình làm việc 1 đến 2 ngày đầu là có thể điều chỉnh tương đối chính xác kế. Vả lại hàng hóa này ko phức tạp,chỉ cần một vài NVL là sẽ làm đc, ko phức tạp như bên may mặc.
- Cty này là phục vụ (gia công) phụ thuộc vào khách hàng nên em cũng chỉ mong lập theo hàng tháng là đc rồi.

Mong anh chỉ giáo thêm. Tks
 
Upvote 0
(3): Nếu đôn lên thì phải cho biết điều kiện để đôn? Theo mình hiểu thì không thể gặp SF nào xong thì đôn các SF dưới lên; Như vậy phải làm 2 cột phụ để còn đôn lên lần hai, lần ba. . . nữa?
(5)E2003 có số cột ít hơn 366 +8 là hiển nhiên, nếu vậy có 2 cách:
* Nhờ bạn nào ý viết VBA trong E2007
* Ghi trên 2 sheet mỗi sheet 8 tháng ( 2 tháng đầu & cuối gối đầu nhau)
(6) thực hiện không khó & sau khi làm rõ (3)

Cảm ơn Bác đã giúp em, cái VD bác làm cũng đã làm được 90% ý của em rồi, em xin trả lời mấy câu hỏi của Bác như sau:

(3) ý của em ở đây là khi một mã hàng hết mà mình tính toán đc bên sheet data, thì em chỉ việc gối ngay đơn hàng với chuyền (line) nào làm xong hết trc. Như MH5 thì em bắt đầu sx vào ngày mùng 5/8, nhưng do line1 của em hết hàng vào ngày 31/7 nên em đưa xuống làm trc bắt đầu từ ngày 1/8 với MH5, còn sau khi các line khác hết hàng sexuôgng làm cùng line1 để kịp tiến độ.

Bác cho em hỏi các code này ko sử dụng trong E2007 đc ạ? trong máy em cài cả 2007 và 2003, vậy với code bác viết cho em thì trên 2007 phải chỉnh phần nào (nếu phải chỉnh) cho em biết chi tiết vì em chỉ biết ứng dụng các code vào thôi chứ để tự viết thì emko biết. Tks
 
Upvote 0
(3) ý của em ở đây là khi một mã hàng hết mà mình tính toán đc bên sheet data, thì em chỉ việc gối ngay đơn hàng với chuyền (line) nào làm xong hết trc. Như MH5 thì em bắt đầu sx vào ngày mùng 5/8, nhưng do line1 của em hết hàng vào ngày 31/7 nên em đưa xuống làm trc bắt đầu từ ngày 1/8 với MH5, còn sau khi các line khác hết hàng sexuôgng làm cùng line1 để kịp tiến độ.

Bác cho em hỏi các code này ko sử dụng trong E2007 đc ạ? trong máy em cài cả 2007 và 2003, vậy với code bác viết cho em thì trên 2007 phải chỉnh phần nào (nếu phải chỉnh) cho em biết chi tiết vì em chỉ biết ứng dụng các code vào thôi chứ để tự viết thì emko biết. Tks
E2007 đối với mình là đồ xa xĩ, hỏi những ai có E2007 í!
Nhưng mình tin chắc, nếu phải sửa code thì cũng không nhiều; Nếu thấy chờ lâu, thì bạn bỏ vô E2007 & chạy xem thử nó báo lỗi gì & cho mình biết lỗi với(!?)
Để làm cái 10% còn lại có phải là phần:
(*) đôn ngày lên hay không
(**) Nếu ngày bắt đầu SX còn trống thì không làm gì? - Cái này không khó & để cuối đi(!)
Để giải vấn đề (*) thì ta có thể thêm 1 cột phụ vô bảng hay không (hay là macro sẽ sửa lại ngày hoàn thành được chăng?)
 
Upvote 0
Bác cứ thêm một cột phụ cho em cũng đc, mục đích là để làm sao những ngày trống đó sẽ nối tiếp các mã hàng khác vào luôn thôi ạ.cảm ơn bác
 
Upvote 0
Web KT

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

Back
Top Bottom