QUẢN LÝ BARCODE XUẤT/NHẬP/TỒN

Liên hệ QC

ngocminh2019hp

Thành viên mới
Tham gia
15/6/19
Bài viết
31
Được thích
10
Dear các bác

Hiện tại e đang làm 1 file quản lý seri của 1 loại mặt hàng với các điều kiện : Nhập - Xuất - Tồn

Do tính chất hàng có thể xuất nhập nhiều lần ( bán ra , bảo hành , sữa chữa ...) nên seri sẽ xuất hiện trùng lặp nhiều , đồng thời 1 ngày có thể nhập vài trăm đến nghìn seri nên file exel khá nặng , nhiều lúc bị treo , truy suất thủ công ...

Các bác tư vấn và hỗ trợ e có cách nào giải quyết dc nhu cầu cơ bản như sau ko ạ :

1. Có form Nhập / xuất ( sử dụng súng scan barcode trực tiếp vào hoặc scan vào file riêng rồi copy paste vào file quản lý ) đơn giản , phát hiện được trùng seri , truy xuất lí do trùng lặp ,số lần xuất/nhập của seri trùng đo,....
2. Với dữ liệu Nhập/Xuất sẽ tổng hợp dc seri Tồn ( Cái này e vẫn làm thủ công bàng cách countif tính số lần nhập - số lần xuất )

E cảm ơn các bác ,
 

File đính kèm

Dear các bác

Hiện tại e đang làm 1 file quản lý seri của 1 loại mặt hàng với các điều kiện : Nhập - Xuất - Tồn

Do tính chất hàng có thể xuất nhập nhiều lần ( bán ra , bảo hành , sữa chữa ...) nên seri sẽ xuất hiện trùng lặp nhiều , đồng thời 1 ngày có thể nhập vài trăm đến nghìn seri nên file exel khá nặng , nhiều lúc bị treo , truy suất thủ công ...

Các bác tư vấn và hỗ trợ e có cách nào giải quyết dc nhu cầu cơ bản như sau ko ạ :

1. Có form Nhập / xuất ( sử dụng súng scan barcode trực tiếp vào hoặc scan vào file riêng rồi copy paste vào file quản lý ) đơn giản , phát hiện được trùng seri , truy xuất lí do trùng lặp ,số lần xuất/nhập của seri trùng đo,....
2. Với dữ liệu Nhập/Xuất sẽ tổng hợp dc seri Tồn ( Cái này e vẫn làm thủ công bàng cách countif tính số lần nhập - số lần xuất )

E cảm ơn các bác ,
Cái này cần bạn thiết kế giao diện xong thì đưa lên chứ.Ai lại đi thiết kế form cho bạn rồi còn code luôn nữa.
 
Upvote 0
Mình thấy là là nhập & xuất không thấy số lượng vậy sao có thể tính lương hàng tồn?
Tên trang tính nên không chứa dấu tiếng Việt.
Có thể 'Nhap' & 'Xuat' nhốt chung 1 trang được không, chỉ thêm 1 cột & bớt được 1 trang tính còn gì!

Viết Form cho bạn cũng được, nhưng bạn phải đưa ra các cột/trường cần phải có tối thiểu để nhập dữ liệu
. . . . .
 
Upvote 0
Mình thấy là là nhập & xuất không thấy số lượng vậy sao có thể tính lương hàng tồn?
Tên trang tính nên không chứa dấu tiếng Việt.
Có thể 'Nhap' & 'Xuat' nhốt chung 1 trang được không, chỉ thêm 1 cột & bớt được 1 trang tính còn gì!

Viết Form cho bạn cũng được, nhưng bạn phải đưa ra các cột/trường cần phải có tối thiểu để nhập dữ liệu
. . . . .
Cảm ơn bạn đã phản hồi .

Như File kèm dưới la file mình đang sử dụng - Nhược điểm : Nhập thủ công , QR code rất dài , chạy công thức nên rất nặng ( hàng ngày sẽ thêm 1-2000 QR code )

Đối với số liệu : Form thì cần 1 số thông tin như : Ngày xuất / nhập , số lượng , LOT hàng , số lượng ....
Đối với QR code : Form cũng cần 1 số thông tin như ngày nhập xuất , Lot , khách hàng . Quan trọng nhất đối với quản lý QR là sự trùng lặp , cần có msg cảnh báo khi nhập 1 QR mới vào mà bị trùng , truy xuất dc lí do trùng ( ngày xuất nhập , cho ai , mấy lần ...)

Bạn xem file và tư vấn giúp mình cải thiện nhé

Mình cảm ơn
 

File đính kèm

Upvote 0
mình mày mò hôm qua tới nay thì được cái userform khá sơ khai , tuy nhiên sẽ gặp khó khăn với cột phiếu và batch No ( như file đính kèm )

Phiếu : Lam sao để phiếu tự chạy , và 1 phiếu có nhiều dòng phụ thuộc batch no nhập ( 1 phiếu có nhiều batch no , 1 batch no là 1 dòng )

Các bạn hỗ trợ mình nhé

cảm ơn ạ
 

File đính kèm

Upvote 0
Trong Form của bạn có 2 macro như sau:
Mã:
Private Sub Nhapbtm_Click()     ' Ghi Du Liêu Nhâp      '
Dim dong_cuoi As Long
dong_cuoi = Sheet2.Range("A10000").End(xlUp).Row + 1
With Sheet2         ' Trang Có Tên: "IN"            '
    .Range("A" & dong_cuoi) = ngaythangbox.Value:            .Range("B" & dong_cuoi) = phieubox.Text
    .Range("C" & dong_cuoi) = mahangbox.Text:               .Range("D" & dong_cuoi) = dsxbox.Text
    .Range("E" & dong_cuoi) = phanloaibox.Text:             .Range("F" & dong_cuoi) = nhapxuatbox.Text
    .Range("G" & dong_cuoi) = casxbox.Text:                 .Range("H" & dong_cuoi) = linesxbox.Text
    .Range("I" & dong_cuoi) = batch1box.Text:               .Range("J" & dong_cuoi) = pallet1.Text
    .Range("K" & dong_cuoi) = qty1.Text:                    .Range("L" & dong_cuoi) = notebox.Text
End With
End Sub
PHP:
Private Sub xuatbtm_Click()         ' Ghi Du Liêu Xuat      '
Dim dong_cuoi As Long
dong_cuoi = Sheet3.Range("A10000").End(xlUp).Row + 1            ' Trang Tính "OUT"          '
With Sheet3
    .Range("A" & dong_cuoi) = ngaythangbox.Value:       .Range("B" & dong_cuoi) = phieubox.Text
    .Range("C" & dong_cuoi) = mahangbox.Text:           .Range("D" & dong_cuoi) = dsxbox.Text
    .Range("E" & dong_cuoi) = phanloaibox.Text:         .Range("F" & dong_cuoi) = nhapxuatbox.Text
    .Range("G" & dong_cuoi) = casxbox.Text:             .Range("H" & dong_cuoi) = linesxbox.Text
    .Range("I" & dong_cuoi) = batch1box.Text:           .Range("J" & dong_cuoi) = pallet1.Text
    .Range("K" & dong_cuoi) = qty1.Text:                .Range("L" & dong_cuoi) = notebox.Text
End With
End Sub

Theo mình bạn có thể gộp 2 macro này bằng 1 macro con như sau:
Mã:
Sub In_Out(ShName As String)
Dim lRs As Long
With Sheets(ShName)
    lRs = .[A65500].End(xlUp).Row
    .Range("A" & lRs) = ngaythangbox.Value:       .Range("B" & lRs) = phieubox.Text
    .Range("C" & lRs) = mahangbox.Text:           .Range("D" & lRs) = dsxbox.Text
    .Range("E" & lRs) = phanloaibox.Text:         .Range("F" & lRs) = nhapxuatbox.Text
    .Range("G" & lRs) = casxbox.Text:             .Range("H" & lRs) = linesxbox.Text
    .Range("I" & lRs) = batch1box.Text:           .Range("J" & lRs) = pallet1.Text
    .Range("K" & lRs) = qty1.Text:               .Range("L" & lRs) = notebox.Text
End With
End Sub

Khi đó 2 macro cha có thể gọi macro con này & truyền cho nó tham biến là tên của trang tính cần nhập liệu
như:
PHP:
Private Sub Nhapbtm_Click()     ' Ghi Du Liêu Nhâp      '
    In_Out "IN"
End sub
PHP:
Private Sub xuatbtm_Click()         ' Ghi Du Liêu Xuat      '
   In_Out "OUT"
End Sub
Bạn thử xem!

Còn vấn đề của bạn:
Phiếu : (1) Lam sao để phiếu tự chạy , và (2) 1 phiếu có nhiều dòng phụ thuộc batch no nhập ( 1 phiếu có nhiều batch no , 1 batch no là 1 dòng )
(1) Chắc phải tạo 1 ComboBox chọn phiếu từ danh sách phiếu đã có
(2) Khi chọn 1 phiếu từ ComboBox nói trên, tất cả các dòng dữ liệu của phiếu sẽ hiện lên 1 ListBox của Form
& vẫn là: Bạn thử xem sao!

(Vì trong file của bạn chưa có nhiều dòng dữ liệu như bạn nêu nên mình không thể thử những ý tưởng này cho bạn được.)
 
Lần chỉnh sửa cuối:
Upvote 0
Hiện tại e đang làm 1 file quản lý seri của 1 loại mặt hàng với các điều kiện : Nhập - Xuất - Tồn

Khoan nói đến các việc thiết kế Form, code...(phần này để các bác khác hỗ trợ tốt hơn tôi :) ), tôi có một vài góp ý về việc tổ chức CSDL để chuẩn hoá, thuận tiện cho việc truy vấn, xử lý về sau này.
- Bạn nên gộp bảng dữ liệu xuất nhập vô cùng 1 sheet như bác SA_DQ đã đề cập. Thêm cột [Loại nghiệp vụ] để phân biệt dòng nào xuất, dòng nào nhập, nhập hoàn trả v.v..
- Tồn đầu kỳ nên có 1 Sheet riêng để kết chuyển tồn đầu khi sang tháng mới. Việc này nhằm tránh phải truy xuất lượng dữ liệu lớn qua các tháng để tổng hợp tồn đầu.
Bạn tham khảo mấy cái hình bên dưới. Tên các cột cần có trong bảng dữ liệu nhâp/ xuất và bạn tuỳ biến theo mô hình quản lý NXT của công ty bạn.

224254

224255
 
Upvote 0
Trong Form của bạn có 2 macro như sau:
Mã:
Private Sub Nhapbtm_Click()     ' Ghi Du Liêu Nhâp      '
Dim dong_cuoi As Long
dong_cuoi = Sheet2.Range("A10000").End(xlUp).Row + 1
With Sheet2         ' Trang Có Tên: "IN"            '
    .Range("A" & dong_cuoi) = ngaythangbox.Value:            .Range("B" & dong_cuoi) = phieubox.Text
    .Range("C" & dong_cuoi) = mahangbox.Text:               .Range("D" & dong_cuoi) = dsxbox.Text
    .Range("E" & dong_cuoi) = phanloaibox.Text:             .Range("F" & dong_cuoi) = nhapxuatbox.Text
    .Range("G" & dong_cuoi) = casxbox.Text:                 .Range("H" & dong_cuoi) = linesxbox.Text
    .Range("I" & dong_cuoi) = batch1box.Text:               .Range("J" & dong_cuoi) = pallet1.Text
    .Range("K" & dong_cuoi) = qty1.Text:                    .Range("L" & dong_cuoi) = notebox.Text
End With
End Sub
PHP:
Private Sub xuatbtm_Click()         ' Ghi Du Liêu Xuat      '
Dim dong_cuoi As Long
dong_cuoi = Sheet3.Range("A10000").End(xlUp).Row + 1            ' Trang Tính "OUT"          '
With Sheet3
    .Range("A" & dong_cuoi) = ngaythangbox.Value:       .Range("B" & dong_cuoi) = phieubox.Text
    .Range("C" & dong_cuoi) = mahangbox.Text:           .Range("D" & dong_cuoi) = dsxbox.Text
    .Range("E" & dong_cuoi) = phanloaibox.Text:         .Range("F" & dong_cuoi) = nhapxuatbox.Text
    .Range("G" & dong_cuoi) = casxbox.Text:             .Range("H" & dong_cuoi) = linesxbox.Text
    .Range("I" & dong_cuoi) = batch1box.Text:           .Range("J" & dong_cuoi) = pallet1.Text
    .Range("K" & dong_cuoi) = qty1.Text:                .Range("L" & dong_cuoi) = notebox.Text
End With
End Sub

Theo mình bạn có thể gộp 2 macro này bằng 1 macro con như sau:
Mã:
Sub In_Out(ShName As String)
Dim lRs As Long
With Sheets(ShName)
    lRs = .[A65500].End(xlUp).Row
    .Range("A" & lRs) = ngaythangbox.Value:       .Range("B" & lRs) = phieubox.Text
    .Range("C" & lRs) = mahangbox.Text:           .Range("D" & lRs) = dsxbox.Text
    .Range("E" & lRs) = phanloaibox.Text:         .Range("F" & lRs) = nhapxuatbox.Text
    .Range("G" & lRs) = casxbox.Text:             .Range("H" & lRs) = linesxbox.Text
    .Range("I" & lRs) = batch1box.Text:           .Range("J" & lRs) = pallet1.Text
    .Range("K" & lRs) = qty1.Text:               .Range("L" & lRs) = notebox.Text
End With
End Sub

Khi đó 2 macro cha có thể gọi macro con này & truyền cho nó tham biến là tên của trang tính cần nhập liệu
như:
PHP:
Private Sub Nhapbtm_Click()     ' Ghi Du Liêu Nhâp      '
    In_Out "IN"
End sub
PHP:
Private Sub xuatbtm_Click()         ' Ghi Du Liêu Xuat      '
   In_Out "OUT"
End Sub
Bạn thử xem!

Còn vấn đề của bạn:
(1) Chắc phải tạo 1 ComboBox chọn phiếu từ danh sách phiếu đã có
(2) Khi chọn 1 phiếu từ ComboBox nói trên, tất cả các dòng dữ liệu của phiếu sẽ hiện lên 1 ListBox của Form
& vẫn là: Bạn thử xem sao!

(Vì trong file của bạn chưa có nhiều dòng dữ liệu như bạn nêu nên mình không thể thử những ý tưởng này cho bạn được.)
Cảm ơn bạn đa hướng dẫn , mình sẽ thử cách của bạn .
Bài đã được tự động gộp:

Khoan nói đến các việc thiết kế Form, code...(phần này để các bác khác hỗ trợ tốt hơn tôi :) ), tôi có một vài góp ý về việc tổ chức CSDL để chuẩn hoá, thuận tiện cho việc truy vấn, xử lý về sau này.
- Bạn nên gộp bảng dữ liệu xuất nhập vô cùng 1 sheet như bác SA_DQ đã đề cập. Thêm cột [Loại nghiệp vụ] để phân biệt dòng nào xuất, dòng nào nhập, nhập hoàn trả v.v..
- Tồn đầu kỳ nên có 1 Sheet riêng để kết chuyển tồn đầu khi sang tháng mới. Việc này nhằm tránh phải truy xuất lượng dữ liệu lớn qua các tháng để tổng hợp tồn đầu.
Bạn tham khảo mấy cái hình bên dưới. Tên các cột cần có trong bảng dữ liệu nhâp/ xuất và bạn tuỳ biến theo mô hình quản lý NXT của công ty bạn.

View attachment 224254

View attachment 224255
Bạn ơi, trình độ exel của mình sơ đẳng lắm , mình xin tiếp thu ý kiến của bạn .
 
Upvote 0
Bạn ơi, trình độ exel của mình sơ đẳng lắm , mình xin tiếp thu ý kiến của bạn .
Muốn lên trung hay cao đẳng cần nhập hơn chục dòng dữ liệu vô trang tính & đưa lên

Chứ như thế này:
NGÀY
( Date )
SỐ PHIẾU
( Doc No )
MÃ HÀNG
(CODE)
ĐỢT SX
(Lot No)
CHỦNG LOẠI
( Style )
KHÁCH HÀNG
( Customer)
CA SẢN XUẤT
( SHIFT )
CHUYỀN SẢN XUẤT
(LINE)
Lô sản xuất
(BATCH NO)
Số lượng PL
( Pallet q'ty )
Số lượng Pack
( Pack q'ty)
Ghi chú
( Remark )
31/1/2019aaaaaaaaaaa
31/01/2019
31/01/2019
31/01/2019

Thì mùng thất, nha!
 
Lần chỉnh sửa cuối:
Upvote 0
Muốn lên trung hay cao đẳng cần nhập hơn chục dòng dữ liệu vô trang tính & đưa lên

Chứ như thế này:
NGÀY
( Date )
SỐ PHIẾU
( Doc No )
MÃ HÀNG
(CODE)
ĐỢT SX
(Lot No)
CHỦNG LOẠI
( Style )
KHÁCH HÀNG
( Customer)
CA SẢN XUẤT
( SHIFT )
CHUYỀN SẢN XUẤT
(LINE)
Lô sản xuất
(BATCH NO)
Số lượng PL
( Pallet q'ty )
Số lượng Pack
( Pack q'ty)
Ghi chú
( Remark )
31/1/2019aaaaaaaaaaa
31/01/2019
31/01/2019
31/01/2019

Thì mùng thất, nha!
Xin lỗi bạn , mình sẽ gửi lại ngay .

Cảm ơn bạn
 
Upvote 0
Các bạn ơi

Mình xin gửi lại file

Lưu trình hàng của mình sẽ như ảnh .

cảm ơn mn 224279
 

File đính kèm

Upvote 0
Bạn dành chút thời gian rãnh rỗi vọc nát file này dùm mình & cho ý kiến

(Xin các bạn xem file ở bài tiếp theo của mình & rất xin lỗi vì mình cần thu hồi tài nguyên)
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn mở Fprm & nhập 1 ngày nào đó có trong trang 'IN' & bấm vô nút lệnh bên phải liền kề
Trong ListBox sẽ cho ta biết ngày đó có bao nhiêu dòng dữ liệu
Bạn lấy chuột bấm vô 1 dòng nào đó trên ListBox có dữ liệu, thì dữ lie5u dòng đó sẽ chuyển sang các TextBox tương ứng
Bạn xem file mới này của mình (& mình sẽ thu hồi file bài trên sau đây vài phút)
 

File đính kèm

Upvote 0
Bạn mở Fprm & nhập 1 ngày nào đó có trong trang 'IN' & bấm vô nút lệnh bên phải liền kề
Trong ListBox sẽ cho ta biết ngày đó có bao nhiêu dòng dữ liệu
Bạn lấy chuột bấm vô 1 dòng nào đó trên ListBox có dữ liệu, thì dữ lie5u dòng đó sẽ chuyển sang các TextBox tương ứng
Bạn xem file mới này của mình (& mình sẽ thu hồi file bài trên sau đây vài phút)
Cảm ơn bạn , tuy nhiên form lại dường như đang ngược với ý của m mất rồi , mình muon dung form để nhập vào cac dòng . Mình sẽ gửi lại file bạn xem lại giúp m với nhé .
 
Upvote 0
. . . . , tuy nhiên form lại dường như đang ngược với ý của m mất rồi , mình muon dung form để nhập vào cac dòng . Mình sẽ gửi lại file bạn xem lại giúp m với nhé .
Form đó dùng để nhập dữ liệu mới cũng được mà, tuy chưa viết macro thôi.
Chắc có file của bạn mình sẽ tiếp tục & hoàn chỉnh được!
 
Lần chỉnh sửa cuối:
Upvote 0
Mình xin gửi lại file , sắp xếp theo loại xuất nhập hiện có .
Bạn xem file giúp mình nhé .
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom