Tính nhập xuất tồn cho hàng nhập nguyên vật liệu, sản xuất sản phẩm (2 người xem)

Liên hệ QC

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

(1) Có cách nào bảo vệ CSDL được an toàn không bạn? Bạn có thể cho mình gợi ý được không.
Mình chỉ có thể khuyên bạn rằng, luôn nhớ sao lưu sau mỗi fiên làm việc với excel
(2) Mình làm file này để theo dõi cho cả quy trình và macro, VBA cho excel thì mình mù tịt luôn, như bạn đề cập nếu khối lượng phát sinh NX mà nhiều thì sẽ ảnh tưởng tốc độ tính của file, nan giải nhỉ.
Sẽ từ từ & giải quyết được.
Nhưng có lẽ sau 1 đợt nghỉ dài ngày nào đó, hay ngay sau khi kiểm kê; là tạo file mới; lúc đó chỉ còn để lại số lượng NVL & fL tồn kho mà thôi; Dữ liệu trang 'NX' ta xóa đi.
(3) Mình cũng đang nghĩ đến vấn đề này, tức là sản phẩm của mình sẽ không đơn thuần chỉ có lèo tèo như vầy, trong quá trình sẽ có nhập thêm NPL mới để phục vụ cho việc sản xuất sản phẩm cũ hoặc mới.
Nếu đơn giản chỉ là cập nhật tiếp vào DMUC thì có được không hay là phải có cách nhập liệu mới?
Tại trang 'DMuc' có 1 vùng mà các mã SF cần fải nằm trong vùng đó; Lúc đó ta sẽ nới rọng vùng này ra
(4) Điều gì làm bạn băn khoăn vậy?
(5) Mình chưa hiểu lắm bạn show (như hình) là ntn, mình chưa hiểu lắm
http://i1279.photobucket.com/albums/y531/anhplus8/khoang_zps6030a992.png
Cuối tuần nhiều niềm vui nha bạn.
Cột dữ liệu đầu tiên trong hình dùng để fục vụ cho chu trình thiết lập thẻ kho
Nếu bạn biết về AnvancedFilter thì lần tới mình sẽ giải thích kỹ hơn.

Còn 3 cột dữ liệu cuối trong hình là để xài cho việc tổng hợp hàng tồn kho của bạn
(Thực ra trong các macro đã không sử dụng AdvancedFilter, mà là hàm CSDL, thường là DSUM())

Tạm thời là vậy & chúc vui!
 
Mình đã nhập liệu và phát sinh những vấn đề sau, bạn check và xem lại file đính kèm mình gửi lên đây xem mình có bị động vào mảng nào làm sai lệch công thức không nha.

(1) Khi nhập vào ô SoLuong =1 vào thì các cột HN01 | HN02 | HN03| quai01 nhảy đúng số theo định mức, nhưng khi nhập số chính xác ví dụ W5 (DN50) = 228 vào thì số liệu nhảy lần lượt là 15,4128 | 11,7876 | 2,5536 | 0 nhưng số chính xác phải là 15,607 | 11,903 | 2,559 | 0
Mình suy đoán thì có lẽ công thức tính có vấn đề với tỷ lệ hao hụt.
Công thức sẽ là: SoLuong x (định mức định mức x tỷ lệ hao hụt%)

(2) Vì đây là khởi đầu của một quy trình nên lượng tồn đầu =0 và do đó Tồn cuối = Tồn đầu nhập - xuất nên Tồn cuối chỉ còn là nhập - xuất. Nhập và xuất đan sen. Căn cứ vào file này để cân đối lượng xuất và tồn cuối để lên kế hoạch nhập NPL

Sheet NXT đã bị sai, có lẽ do mảng mình động vào.

(3) Sheet TheKho do mình thay đổi lại ở sheet DMuc nên lượng tồn đầu kỳ không còn chính xác dẫn đến Tồn cuối kỳ VALUE.
Và không hiểu sao sau khi mình đổi 1 vài thứ thì cứ save thì các phép tính mới thực hiện là bị gì nhỉ?

(4) Mình phải bố túc khẩn cấp về kiến thức quy định mảng tính và macro.

File gần hoàn thiện rồi, phấn khích quá.
 

File đính kèm

Lần chỉnh sửa cuối:
(1) Cách tính lượng xuất TF trước đây chỉ đơn thuần lấy định mức nhân với số SF mà thôi; Giờ thì hiểu rõ & đúng vấn đề & tính lại rồi.

Tuy nhiên giờ bỏ luôn hàm tự tạo, mà nhập trực tiếp bằng macro sự kiện;
Khi đó, chỉ cần nhập mã SF, sau khi nhập số lượng SF vô dưới dòng cuối thuộc cột [AE] & {ENTER} thì có số liệu tiêu hao của 4 nguyên vật liệu luôn.
Bạn có thể kiểm tra vài lần vấn đề này.

(2) Nếu khởi đầu chu trình quản lí, thì bạn đến trang 'DMuc', & cho về 0 toàn bộ vùng [D25..D28] đi là được.

(4) Bạn nên mua quyễn sách do GPE.COM fát hành & đọc/tự học để nắm vững các câu lệnh có trong các macro.

Nếu khó hiểu thì lên diễn đàn hỏi là được.


Rất mừng là đã giúp được bạn vũng niềm tin vố "Con đường đau khổ"
 

File đính kèm

  • BachDuong.jpg
    BachDuong.jpg
    55 KB · Đọc: 104
Lần chỉnh sửa cuối:
Run-time error '1004'
 
Lần chỉnh sửa cuối:
Run-time error '1004'<---Bạn ơi mình thay số để test thì nó bị lỗi này. Giúp mình với nha. Cảm ơn nhiều nhiều/-*+/

Bạn cần nói rõ rằng bạn đã thay vô 'Địa chỉ' nào, ở đâu & thay cái gì?
Hơn nữa là: Báo lỗi này ở macro nào hay ở trang nào?
 
Tại vùng [Af2..AI8] đang vẫn còn hàm mảng tự tạo; Hàm này cũng giống như 1 kỷ niệm vui mà bạn & chúng tôi đã trãi qua. (giống 1 fần thương xá TAX trên đường Nguyễn Huệ, TF HCM)
Chúng là hàm mảng, nên ta không thể xóa 1 thành fần riêng rẽ, muốn xóa bỏ, ta cần tô chọn (bằng chuột hiễn nhiên rồi) cả 4 thành tố của 1 hàm & nhấn 'Delete' mới được.
Bạn nên thử fía dưới sau dòng 8, hay xóa fần còn lại của kỹ niệm thời xa vắng của tuần rồi hãy thử (khi muốn thử ngay từ những dòng dữ liệu đầu); Khi đó, bạn có thể tô chọn cả vùng & 'Delete' 1 loạt thôi.

Tóm lại là không sao; Bạn đã biết thêm 1 cái về vận hành hàm mảng, dù nó là tự tạo.

Vui nha!
 
Vui thật, xây dựng được file này xong bản thân mình hiểu thêm được rất là nhiều điều. Kiến thức là vô hạn và cách tiếp cận cũng thật đa dạng.

Xin được Cảm ơn gia đình GPE nói chung đã nhiệt tình giúp đỡ. Do trình độ Excel còn rất nhiều hạn chế nên trong quá trình vận hành có điều gì chưa thấu hiểu mình xin được chỉ giáo thêm nha.

Thích câu này thế
- Hàm này cũng giống như 1 kỷ niệm vui mà bạn
 
Lần chỉnh sửa cuối:
Có thể với CSDL như vậy đã là thỏa mãn, nhưng với chúng tôi thì chưa đâu:

(1) Bạn thấy đó, các trang tính 'đầu ra' (gồm những trang tính khác với 'DMuc') & trang tính 'đầu vào' như 'NX' đều có dạng bảng gồm sẽ nhiều dòng & với số cột luôn ít hơn.

Chỉ có trang 'DMuc' do lịch sử để lại là không giống ai!

Mà hiện CSDL đã fát triển đến mức này rồi thì khó quay/xoay nó lại thành dáng mà lí ra nó fải có

Điều í nhắc nhỡ mọi chúng ta 1 điều rằng, cần cân nhắc kỹ lưỡng trước khi thiết chế 1 CSDL; Câu ông bà xưa hay nói là: "7 lần đo, 1 lần cắt' là vậy.

Bọn này sẽ suy nghĩ các tốt nhất để xoay nó; Bạn cũng nên chuẩn bị tinh thần nha;

(2) Trong các dòng báo cáo của trang 'TheKho' ta còn thấy số liệu ngày có vừa nhập & vừa xuất thành 2 dòng riêng biệt; Đó là 1 điều chướng mắt, mà file này mình đưa lên đã khắc fục được

Tạm thời là vậy & chúc 1 tuần làm việc kết quả & vui vẻ!
 

File đính kèm

  • BachDuong.jpg
    BachDuong.jpg
    55 KB · Đọc: 105
Lần chỉnh sửa cuối:
Mình trình non nên thấy vầy đã OK lắm rồi, nhưng tối ưu đc hơn nữa thì quá tuyệt, mong chờ. Cảm ơn sự nhiệt tình của các bạn.-=.,,
 
Lần chỉnh sửa cuối:
Trong các file của bọn mình gần đây làm gì có Quai01; Chỉ có Quai04 mà thôi!

,,,,,,, ,,,,,,, ,,,,,,,
 
Chỉnh sửa lần cuối bởi điều hành viên:
Trong các file của bọn mình gần đây làm gì có Quai01; Chỉ có Quai04 mà thôi!

,,,,,,, ,,,,,,, ,,,,,,,
(1) Nếu đổi về quai4 thì OK nhưng đây chưa có phát sinh xuất. Nhưng mình muốn đổi về quai1 thì làm ntn
(2) Lượng tính ra vẫn bị sai nên lượng tồn không chính xác
thiệnthiẹthịthìW5 DN50 nhập 288 thì lượng tương ứng là 15,607 | 11,903 | 2559 nhưng khi mình nhập vô file vừa hoàn thiện thì nó lại là 15,42345024 | 11,79382385 | 2,553893664. Bạn check lại giúp nha.
Hí hí đầu tuần đã phiền nhà mình:-=
 
Lần chỉnh sửa cuối:
Bạn kiểm xem đây có fải số liệu bạn đã nhập vô file bài 32 chưa?

Sau khi kiểm, bạn cho chạy các macro & cho biết số liệu nào sau khi chạy chưa cho kết quả đúng.

Chuyện đổi sang Quai01 là không nên chút nào.
 

File đính kèm

  • BachDuong.jpg
    BachDuong.jpg
    55 KB · Đọc: 100
Chỉnh sửa lần cuối bởi điều hành viên:
Về vấn đề fát triển CSDL sẽ fải như sau:

Tạm thời, bạn chưa biết VBA lắm, thì bạn chưa thể sửa chương trinh;
Có nguyên liệu mới, bạn đến trang 'Tab' nhập mã vô H2,. . .
Mã này sẽ fải có số 5 cuối, như GPE5,. . .

Tên thì dưới ô mã
Tương tự là ĐVT

Còn mã SF thì sẽ fải nhập vô cột 'B' của trang tính với các nguyên tắc:
Không trùng với bất kì mã nào trên cột 'B' đã có;
Nên có độ dài là 4 để tránh sai sót không đáng có khi tính toán

Các định mức & hư hao như các dòng SF khác đã có;

Tại trang 'NX':
Cột 'C' bạn cần tuân thủ các mã đã & sẽ lập ra
Thêm cột trống sau cột AI (đẩy cột [Aj] ra sau)
(*) Sẵn đây hỏi bạn luôn, rằng bạn có cần cột [AJ] hiện tại để làm gì hay không?
Fần macro mình sẽ sớm viết lại để bạn tăng đến đâu nó chép tới đó; (Hiện nó mới chỉ biết tạo ra 4 cột số liệu mà thôi)

Tại trang 'NXT' :
Trước cột 'E' bạn thêm bằng tay;
Nếu số liệu tính toán sau vùng này sai sót bọn này chịu trách nhiệm bảo hành;

Trang 'TheKho' chắc sẽ không vấn đề gì bất thường(!)

Tạm thời là vậy, sau này giải quyết tiếp những fát sinh không như í.
 
Tạm thời, bạn chưa biết VBA lắm, thì bạn chưa thể sửa chương trinh;
Có nguyên liệu mới, bạn đến trang 'Tab' nhập mã vô H2,. . .
Mã này sẽ fải có số 5 cuối, như GPE5,. . .

Tên thì dưới ô mã
Tương tự là ĐVT

Còn mã SF thì sẽ fải nhập vô cột 'B' của trang tính với các nguyên tắc:
Không trùng với bất kì mã nào trên cột 'B' đã có;
Nên có độ dài là 4 để tránh sai sót không đáng có khi tính toán

Các định mức
 
Lần chỉnh sửa cuối:
excel thật phức tạp đối với em, không hề đơn giản em tự nghiên cứu mày mò mãi mà vẫn không rành cả nhà ạ
 
Hi.
Để tiện cho việc tính toán, mình muốn đổi vị trí cột B lên trước cột A trong sheet Tab thì phải làm như thế nào để không bị ảnh hưởng đến công thức tính toán bên sheet NX k?
Mục đích của việc đổi chỗ 2 cột đó vì mình muốn dùng hàng vlookup cho sheet NX.
Vì mã size hàng nhà máy đã đăng kí với hải quan là W (MCQ) tương ứng nên có việc bị trùng nhau giữa các loại đế giày và quai dép. GPE đã đưa ra phương án rất hay tránh cho việc bị trùng đó là đặt thêm một mã DG, DN, XN (gọi chung là Ma).
Bây giờ mọi tính toán lại dựa vào Ma, mình muốn ví dụ tại sheet NX cột AD2 điền DN50 thì AC2 tự động sẽ nhảy là W5 và chỉ cần dùng 1 công thức vlookup là dễ dàng soi được.
Nếu làm được điều đó thì việc nhập liệu vào sheet NX giờ chỉ còn phải nhập Ma (ví dụ DN50, DG70,...) và lượng, mọi thứ còn lại sẽ tự động (không kể đến việc nhập ngày và số TK)
Cảm ơn nhiều nhiều.
 
Lần chỉnh sửa cuối:
Với VBA thì không cứ fải đổi cột mới làm được điều đó!
Chỉ cần bạn copy toàn bộ macro này đề lên macro sự kiện tại trang tính 'NX' là được
PHP:
Option Explicit
Const SoDg As Integer = 9999
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Sh As Worksheet, Rng As Range, sRng As Range
 Dim J As Byte
 
 Set Sh = ThisWorkbook.Worksheets("Tab")
 Set Rng = Sh.Range(Sh.[B5], Sh.[B65500].End(xlUp))
 If Not Intersect(Target, [AE1].Resize(SoDg)) Is Nothing Then
    Set sRng = Rng.Find(Target.Offset(, -1).Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        For J = 2 To 5
            Target.Offset(, J - 1).Value = Target.Value * sRng.Offset(, J).Value * (1 + 0.01 * sRng.Offset(1, J).Value)
        Next J
    End If
 ElseIf Not Intersect(Target, [ad2].Resize(SoDg)) Is Nothing Then
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then Target.Offset(, -1).Value = sRng.Offset(, -1).Value
 End If
End Sub
 
Web KT

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

Back
Top Bottom