Chia sẻ file nhập xuất tồn & nhờ tham mưu viết VBA cho file

Liên hệ QC

xuantamc6

Thành viên hoạt động
Tham gia
18/11/13
Bài viết
157
Được thích
59
Chào mọi người, em muốn chia sẻ file excel nhập xuất tồn. Bên cạnh đó nhờ các anh chị hỗ trợ giùm em thay vì như dùng công thức trong file (em thấy chạy rất chậm) thì mình dùng VBA (VBA thì em mù tịt !$@!!). Cám ơn mọi người đã dành thời gian đọc bài viết.
 

File đính kèm

  • 00. Nhap xuat ton PI.2014.rar
    601.2 KB · Đọc: 401
Chào mọi người, em muốn chia sẻ file excel nhập xuất tồn. Bên cạnh đó nhờ các anh chị hỗ trợ giùm em thay vì như dùng công thức trong file (em thấy chạy rất chậm) thì mình dùng VBA (VBA thì em mù tịt !$@!!). Cám ơn mọi người đã dành thời gian đọc bài viết.

- bạn có thể chụp lại cái Form Nhập liệu trên giấy trước khi nhập vào sheet Nhap lieu được ko? (Up lên mọi người xem thử //////)
- mình đang xem cách lọc số liệu của 3 sheet: Sochitiet, P.Nhapkho, P.Xuatkho (1 số cột bạn vẫn để trống --> ko biết có ý gì đây ...)
(tiêu đề của bạn có kèm chữ VBA, nhưng lại post vào Box ... **~**)
 
Lần chỉnh sửa cuối:
Upvote 0
- bạn có thể chụp lại cái Form Nhập liệu trên giấy trước khi nhập vào sheet Nhap lieu được ko? (Up lên mọi người xem thử //////)
- mình đang xem cách lọc số liệu của 3 sheet: Sochitiet, P.Nhapkho, P.Xuatkho (1 số cột bạn vẫn để trống --> ko biết có ý gì đây ...)
(tiêu đề của bạn có kèm chữ VBA, nhưng lại post vào Box ... **~**)
Em xin gửi lên bản KCS (nhập kho, file = PDF) và phiếu xuất kho (file = excel) để mọi người tham khảo :-=. Em cũng xin giải thích lời mà bác phucbugis trích dẫn Sochitiet, P.Nhapkho, P.Xuatkho (1 số cột vẫn để trống), ở sheet Sochitiet => số dư đầu kỳ và số dư cuối kỳ em không biết thiết kế cho nó nằm ở đâu cho hợp lý **~** nên đành phải thêm cột đầu & cuối kỳ. Sheet P.Nhap kho & P.Xuat kho thì cột đơn giá và thành tiền em vẫn chưa tạo công thức với lý do là ở sheet nhap lieu em không tạo hai cột này (file này hạn chế về mặt chỉ quản lý được số lượng vật tư chứ chưa có giá trị của chúng).
Riêng nhờ mọi người hỗ trợ viết VBA mà lại post vào Box là do em cũng mới tham gia diễn đàn nên chưa nắm được hết, mong mọi người chỉ bảo. %#^#$
 

File đính kèm

  • 00. File nhap lieu.rar
    1.1 MB · Đọc: 218
Upvote 0
Em xin gửi lên bản KCS (nhập kho, file = PDF) và phiếu xuất kho (file = excel) để mọi người tham khảo :-=. Em cũng xin giải thích lời mà bác phucbugis trích dẫn Sochitiet, P.Nhapkho, P.Xuatkho (1 số cột vẫn để trống), ở sheet Sochitiet => số dư đầu kỳ và số dư cuối kỳ em không biết thiết kế cho nó nằm ở đâu cho hợp lý **~** nên đành phải thêm cột đầu & cuối kỳ. Sheet P.Nhap kho & P.Xuat kho thì cột đơn giá và thành tiền em vẫn chưa tạo công thức với lý do là ở sheet nhap lieu em không tạo hai cột này (file này hạn chế về mặt chỉ quản lý được số lượng vật tư chứ chưa có giá trị của chúng).
Riêng nhờ mọi người hỗ trợ viết VBA mà lại post vào Box là do em cũng mới tham gia diễn đàn nên chưa nắm được hết, mong mọi người chỉ bảo. %#^#$
bạn tải file đính kèm, cho chạy Macro! (click Enable content)
mình đã chỉnh lại file của bạn:
- tạo các Table (tbl_Danhmuc, tbl_Nhaplieu) cho sheet Danhmuc Nhaplieu
---> bạn ko cần phải chừa sẵn Row nữa: khi thêm số liệu tiếp theo nó sẽ tự động kẻ bảng + điền công thức ở Row trên xuống.
- nếu cột có chứa công thức bạn nên Fill Color để phân biệt các cột khác.

sheet Nhaplieu:
- đã thay đổi công thức của Tên vật tư, Đvt (nếu có thể bạn nên chuyển sang dùng Index, Match)
- thêm 1 Shape để click đi tới Row cuối (gần ô A5)
- nội dung cột diễn giải có cần phải lặp lại nhiều lần của 1 số chứng từ hay ko?

'--------
vào sheet N-X-T click nút Update để xem kết quả của code bên dưới nhé:
(1) cập nhập mã hàng từ Danh mục
(2) chuyển công thức các ô thành Value
Mã:
Sub Update_NXT()
'neu la Table thi tu* dong chen` Cthuc, ke boder khi them Row + xac dinh vung` nhanh
'cai dat Format Cells cho Row dau tien: Border, Wrap Text ...
'| tham khao cach dung, code:
''- Cac Chuyen De Hay Trong Excel 2007-2010 - Mung SN GPE 7 (Ebook)
''- http://www.jkp-ads.com/articles/Excel2007TablesVBA.asp
Dim oList As ListObject, rHeader As Range, iCount As Long
Dim vung As String, iCol As Integer

    Set oList = ActiveWorkbook.Sheets("N-X-T").ListObjects("tbl_NXT")
    Set rHeader = oList.ListColumns(1).Range(1)
    iCount = Range("tbl_NXT[1]").Count              'dem' lan` 1
    
    If iCount > 1 Then
        rHeader.Offset(2).Resize(iCount - 1).EntireRow.Delete
        MsgBox "xoa' Row", , "xong"
    End If
    '-------
    vung = rHeader.Address & ":$G$" & Range("tbl_Danhmuc[1]").Count + rHeader.Row '(vung="$A$10:$G$2xxx")
    oList.Resize Range(vung) 'Record Macro
    MsgBox "chen` Row, cong thuc, Format Cells", , "xong"
    '-------
    iCount = Range("tbl_NXT[1]").Count              'dem' lan` 2
    iCol = oList.Range.Columns.Count
    With rHeader.Offset(2).Resize(iCount - 1, iCol)
        .Value = .Value
    End With
    
    MsgBox "chuyen? cong thuc thanh` Value", vbInformation, "Xong"
End Sub
 

File đính kèm

  • 00. Nhap xuat ton PI.2014 (1).xlsm
    364.3 KB · Đọc: 285
Upvote 0
bạn tải file đính kèm, cho chạy Macro! (click Enable content)
mình đã chỉnh lại file của bạn:
- tạo các Table (tbl_Danhmuc, tbl_Nhaplieu) cho sheet Danhmuc Nhaplieu
---> bạn ko cần phải chừa sẵn Row nữa: khi thêm số liệu tiếp theo nó sẽ tự động kẻ bảng + điền công thức ở Row trên xuống.
- nếu cột có chứa công thức bạn nên Fill Color để phân biệt các cột khác.

sheet Nhaplieu:
- đã thay đổi công thức của Tên vật tư, Đvt (nếu có thể bạn nên chuyển sang dùng Index, Match)
- thêm 1 Shape để click đi tới Row cuối (gần ô A5)
- nội dung cột diễn giải có cần phải lặp lại nhiều lần của 1 số chứng từ hay ko?

'--------
vào sheet N-X-T click nút Update để xem kết quả của code bên dưới nhé:
(1) cập nhập mã hàng từ Danh mục
(2) chuyển công thức các ô thành Value
Mã:
Sub Update_NXT()
'neu la Table thi tu* dong chen` Cthuc, ke boder khi them Row + xac dinh vung` nhanh
'cai dat Format Cells cho Row dau tien: Border, Wrap Text ...
'| tham khao cach dung, code:
''- Cac Chuyen De Hay Trong Excel 2007-2010 - Mung SN GPE 7 (Ebook)
''- http://www.jkp-ads.com/articles/Excel2007TablesVBA.asp
Dim oList As ListObject, rHeader As Range, iCount As Long
Dim vung As String, iCol As Integer

    Set oList = ActiveWorkbook.Sheets("N-X-T").ListObjects("tbl_NXT")
    Set rHeader = oList.ListColumns(1).Range(1)
    iCount = Range("tbl_NXT[1]").Count              'dem' lan` 1
    
    If iCount > 1 Then
        rHeader.Offset(2).Resize(iCount - 1).EntireRow.Delete
        MsgBox "xoa' Row", , "xong"
    End If
    '-------
    vung = rHeader.Address & ":$G$" & Range("tbl_Danhmuc[1]").Count + rHeader.Row '(vung="$A$10:$G$2xxx")
    oList.Resize Range(vung) 'Record Macro
    MsgBox "chen` Row, cong thuc, Format Cells", , "xong"
    '-------
    iCount = Range("tbl_NXT[1]").Count              'dem' lan` 2
    iCol = oList.Range.Columns.Count
    With rHeader.Offset(2).Resize(iCount - 1, iCol)
        .Value = .Value
    End With
    
    MsgBox "chuyen? cong thuc thanh` Value", vbInformation, "Xong"
End Sub
Em cám ơn bác đã dành thời gian hỗ trợ và chia sẻ. Em vẫn muốn nó chạy 100% được không ạ? và các sheet như "sochitiet" & P.nhapkho" & "P. xuat kho" vẫn còn để thuận tiện hơn trong quá trình theo dõi xuất nhập tồn.
 
Upvote 0
Em cám ơn bác đã dành thời gian hỗ trợ và chia sẻ. Em vẫn muốn nó chạy 100% được không ạ? và các sheet như "sochitiet" & P.nhapkho" & "P. xuat kho" vẫn còn để thuận tiện hơn trong quá trình theo dõi xuất nhập tồn.

mình đã cài code cho 3 sheet đó, bạn tải file đính kèm kiểm tra xem sao nhé !

sự kiện Worksheet_Change sẽ được kích hoạt khi:
- nhập mã Vật tư (ô D8) của sheet SoChiTiet
- nhập số chứng từ (ô F7) của sheet P.Nhapkho, P.Xuatkho

----> sẽ tự động cập nhật các Row ...

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$8" Then
        If Target <> "" Then Call UpdateSoChiTiet(Target)
    End If
End Sub

Sub UpdateSoChiTiet(rTarget As Range)
Dim rng1 As Range, rng2 As Range, rng3 As Range, rng4 As Range, sCol As String
    Set rng1 = Range("Sochitiet_FirstRow")
    Set rng2 = Range("Sochitiet_LastRow")
    Set rng3 = Range("tbl_Nhaplieu[4]")
    Set rng4 = rTarget
    sCol = "H"
    Call UpdateSheet(rng1, rng2, rng3, rng4, sCol)
End Sub

Sub UpdateSheet(xRng As Range, yRng As Range, vung As Range, rTarget As Range, LastCol As String)
Dim x As Long, y As Long, wsFunc As WorksheetFunction, MyCountif As Long

    x = xRng.Row
    y = yRng.Row
    Set wsFunc = Application.WorksheetFunction
    MyCountif = wsFunc.CountIf(vung, rTarget.Value)
    
    If y - x <> 1 Then
        Range("A" & x).Offset(1).Resize(y - x - 1).EntireRow.Delete
        y = yRng.Row  'xac dinh lan` 2
    End If
    
    If MyCountif = 0 Or MyCountif = 1 Then Exit Sub 'chi xoa' Row, ko them Row
    
    Range("A" & y).Resize(MyCountif - 1).EntireRow.Insert
    
    '----- AutoFill(Record Macro)
    Set vung = Range("A" & x, LastCol & x)
    vung.AutoFill Destination:=vung.Resize(MyCountif), Type:=xlFillDefault
    '-----
    With Range("C" & x).Resize(MyCountif) '3 sheet deu chung 1 cot C
        .WrapText = False
        .WrapText = True
    End With
End Sub
 

File đính kèm

  • 00. Nhap xuat ton PI.2014 (2).xlsm
    335.1 KB · Đọc: 178
Upvote 0
mình đã cài code cho 3 sheet đó, bạn tải file đính kèm kiểm tra xem sao nhé !

sự kiện Worksheet_Change sẽ được kích hoạt khi:
- nhập mã Vật tư (ô D8) của sheet SoChiTiet
- nhập số chứng từ (ô F7) của sheet P.Nhapkho, P.Xuatkho

----> sẽ tự động cập nhật các Row ...

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$8" Then
        If Target <> "" Then Call UpdateSoChiTiet(Target)
    End If
End Sub

Sub UpdateSoChiTiet(rTarget As Range)
Dim rng1 As Range, rng2 As Range, rng3 As Range, rng4 As Range, sCol As String
    Set rng1 = Range("Sochitiet_FirstRow")
    Set rng2 = Range("Sochitiet_LastRow")
    Set rng3 = Range("tbl_Nhaplieu[4]")
    Set rng4 = rTarget
    sCol = "H"
    Call UpdateSheet(rng1, rng2, rng3, rng4, sCol)
End Sub

Sub UpdateSheet(xRng As Range, yRng As Range, vung As Range, rTarget As Range, LastCol As String)
Dim x As Long, y As Long, wsFunc As WorksheetFunction, MyCountif As Long

    x = xRng.Row
    y = yRng.Row
    Set wsFunc = Application.WorksheetFunction
    MyCountif = wsFunc.CountIf(vung, rTarget.Value)
    
    If y - x <> 1 Then
        Range("A" & x).Offset(1).Resize(y - x - 1).EntireRow.Delete
        y = yRng.Row  'xac dinh lan` 2
    End If
    
    If MyCountif = 0 Or MyCountif = 1 Then Exit Sub 'chi xoa' Row, ko them Row
    
    Range("A" & y).Resize(MyCountif - 1).EntireRow.Insert
    
    '----- AutoFill(Record Macro)
    Set vung = Range("A" & x, LastCol & x)
    vung.AutoFill Destination:=vung.Resize(MyCountif), Type:=xlFillDefault
    '-----
    With Range("C" & x).Resize(MyCountif) '3 sheet deu chung 1 cot C
        .WrapText = False
        .WrapText = True
    End With
End Sub

Xin lỗi bác em viết sót đoạn này: Ý của em là em vẫn muốn nó chạy 100% "bằng VBA "được không ạ (không sử dụng công thức hàm excel í) }}}}}
 
Upvote 0
Xin lỗi bác em viết sót đoạn này: Ý của em là em vẫn muốn nó chạy 100% "bằng VBA "được không ạ (không sử dụng công thức hàm excel í) }}}}}
- mình để lại 1 Row mẫu chứa công thức/2xxx row để bạn có thể biết được số liệu nó tính toán như thế nào, khi bạn hiểu được đoạn code đó thì có thể chuyển thành Value cho toàn bảng rất dễ còn còn ngược lại thì ... --=0,

- mình gợi ý thế này chứ thấy ko cần thiết, các code cơ bạn đều đã có:
(1) xóa toàn bộ số liệu của sheet N-X-T
Mã:
ActiveSheet.ListObjects("tbl_NXT").DataBodyRange.Rows.Delete
(2) Copy các cột 2,3,4,5 của Table tbl_Danhmuc Paste sang sheet N-X-T
(3) điền công thức cho ô E11, F11, G11
(4) chuyển toàn bộ tbl_NXT thành Value.
Mã:
Range("tbl_NXT").Value = Range("tbl_NXT").Value
'----------
B2, B3 thì bạn có thể dùng Record Macro.
 
Upvote 0
- mình để lại 1 Row mẫu chứa công thức/2xxx row để bạn có thể biết được số liệu nó tính toán như thế nào, khi bạn hiểu được đoạn code đó thì có thể chuyển thành Value cho toàn bảng rất dễ còn còn ngược lại thì ... --=0,

- mình gợi ý thế này chứ thấy ko cần thiết, các code cơ bạn đều đã có:
(1) xóa toàn bộ số liệu của sheet N-X-T
Mã:
ActiveSheet.ListObjects("tbl_NXT").DataBodyRange.Rows.Delete
(2) Copy các cột 2,3,4,5 của Table tbl_Danhmuc Paste sang sheet N-X-T
(3) điền công thức cho ô E11, F11, G11
(4) chuyển toàn bộ tbl_NXT thành Value.
Mã:
Range("tbl_NXT").Value = Range("tbl_NXT").Value
'----------
B2, B3 thì bạn có thể dùng Record Macro.

Như trong lời mở đầu em cũng đã đề cập đến là (VBA thì em mù tịt !$@!!). Em xin đóng góp thêm một số ý kiến. Trong sheet Sochitiet, khi xem chi tiết nhập xuất tồn vật tư thì vẫn chưa chạy ra được số lượng tồn cuối kỳ. Còn 2 sheet P.nhapkho & P.xuatkho thì cột Cộng vẫn cũng chưa chạy được.
Bác có thể sửa lỗi này giúp em được không ạ. **~**
 
Upvote 0
Như trong lời mở đầu em cũng đã đề cập đến là (VBA thì em mù tịt !$@!!).

hic, cái đó bạn có thể học từ từ ..., tài liệu trên GPE, Google rất nhiều ...
(sau khi tham khảo + nghiên cứu code nếu ko biết chỗ nào, bạn có thể liên hệ mình ở bên Face: www.facebook.com/phuc.nguyenhuu.7927)
Em xin đóng góp thêm một số ý kiến. Trong sheet Sochitiet, khi xem chi tiết nhập xuất tồn vật tư thì vẫn chưa chạy ra được số lượng tồn cuối kỳ. Còn 2 sheet P.nhapkho & P.xuatkho thì cột Cộng vẫn cũng chưa chạy được.
Bác có thể sửa lỗi này giúp em được không ạ. **~**
ngay từ lúc đầu mình đã hỏi bạn tại sao 1 số sheet các cột vẫn để trống --> bạn chỉ trả lời chung chung, mình chi giúp bạn Update số lượng Row đúng với Mã vật tư cần xem còn vấn đề chuyên môn của Kế toán (Nhập-Xuất-Tồn) thì mình ko rành --> ko thể lập công thức giùm bạn được (nếu ko biết bạn có thể Post lên GPE đề tài mới hỏi bên Box Kế toán, Hàm và công thức sẽ có người giúp)
 
Upvote 0
hic, cái đó bạn có thể học từ từ ..., tài liệu trên GPE, Google rất nhiều ...
(sau khi tham khảo + nghiên cứu code nếu ko biết chỗ nào, bạn có thể liên hệ mình ở bên Face: www.facebook.com/phuc.nguyenhuu.7927)

ngay từ lúc đầu mình đã hỏi bạn tại sao 1 số sheet các cột vẫn để trống --> bạn chỉ trả lời chung chung, mình chi giúp bạn Update số lượng Row đúng với Mã vật tư cần xem còn vấn đề chuyên môn của Kế toán (Nhập-Xuất-Tồn) thì mình ko rành --> ko thể lập công thức giùm bạn được (nếu ko biết bạn có thể Post lên GPE đề tài mới hỏi bên Box Kế toán, Hàm và công thức sẽ có người giúp)

Một lần nữa cám ơn bác. Em đã chỉnh sửa lại và có thể thay thế file đang sử dụng (Nhanh nhạy hơn nhiều). Người ta gọi đây là bước tiến công nghệ ;;;;;;;;;;;. Và đây là file của em sau khi chỉnh sửa lại. Thân ái và quyết thắng!
 

File đính kèm

  • 00. Nhap xuat ton PI.2014 new.xlsm
    447.4 KB · Đọc: 228
Upvote 0
Bac phucbugis ơi. Sau một thời gian chạy phà phà thì bây giờ nó gặp trục trặc rồi. Mong bác gỡ rỗi giúp em. Em đưa file thực tế đang làm lên bác kiểm tra giúp em nhé. Em cám ơn!
 

File đính kèm

  • 00. Nhap xuat ton PI.2014.rar
    492.1 KB · Đọc: 139
Upvote 0
Bac phucbugis ơi. Sau một thời gian chạy phà phà thì bây giờ nó gặp trục trặc rồi. Mong bác gỡ rỗi giúp em. Em đưa file thực tế đang làm lên bác kiểm tra giúp em nhé. Em cám ơn!

mình kiểm tra file thấy vẫn bình thường ---> cụ thể là bị lỗi gì:
- ở thao tác nào ?
- chụp ảnh hoặc quay Camera lại nếu ko diễn đạt được.

'------
@ #14, 15 ----> vẫn chưa hiểu:
- chắc phải TeamView vào mt mới biết được
- bạn liên hệ với mình qua Face: https://www.facebook.com/phuc.nguyenhuu.7927
 
Lần chỉnh sửa cuối:
Upvote 0
Tình hình là như vầy bạc ạ. Em vừa thêm cái hàm chọn mốc thời gian làm báo cáo trong quá trình chỉnh sửa thì nó bị lỗi luôn. Cụ thể như sau:
1. Ở sheet "Nhaplieu", khi em nhập mã vật tư thì ngoài những vật tư em chưa bổ sung vào danh mục thì nó không vlookup ra được, nhưng có một số mã vật tư đã nằm trong danh mục rồi nhưng vlookup thì nó trả về kết quả là #N/A **~**( Chỉ một số mã vật tư thôi bác ạ). Khi mình bấm F2 ở kết quả #N/A đó thì nó mới chạy ra cho mình.
2. Sheet "Sochitiet", em cũng đã thử một mã vật tư như trong file rồi, tất các các vị trí chứa hàm đều chạy sai. Ví dụ như: Tên vật tư, công cụ dụng cụ chạy ra không đúng với mã, số chứng từ, ngày chứng từ, Diễn giải nó chạy ra đồng loạt giống nhau. Khi F2 từng vị trí thì sẽ mới chạy ra đúng như kết quả. Bác có thể lấy một mã khác và chạy thử sẽ nhận được kết quả tương tự.-+*/
3. Ở sheet "P.Nhapkho" & "P.Xuatkho", bác lấy mẫu hai phiếu KCS với PXK mới thử sẽ nhận kết quả giống như ở sheet "Sochitiet" mà em đã mô tả. Mong bác gỡ rối giúp em.!$@!!
Cám ơn bác trước %#^#$
 
Upvote 0
Vậy là do máy của em hay sao bác phucbugis ạ?
 
Upvote 0
mình kiểm tra file thấy vẫn bình thường ---> cụ thể là bị lỗi gì:
- ở thao tác nào ?
- chụp ảnh hoặc quay Camera lại nếu ko diễn đạt được.

'------
@ #14, 15 ----> vẫn chưa hiểu:
- chắc phải TeamView vào mt mới biết được
- bạn liên hệ với mình qua Face: https://www.facebook.com/phuc.nguyenhuu.7927

Bữa hôm giờ tưởng Bác không có thời gian lên diễn đàn. Giờ đọc lại bài cũ mới thấy bác cmt ở đây. Hồi sáng em có hỏi chị cùng cty thấy chị ấy bảo bấm F9 thử xem thế nào. Sau khi bấm f9 nó chạy ra kết quả. Nhưng mà mỗi lần tra cứu chi tiết phải bấm F9 như thế thì bất tiện quá. Bác xem có gặp trường hợp nào chưa ạ?
 
Upvote 0
Cho mình góp vui với bạn 1 í nho nhỏ về mã vật tư(VT) như sau:

/-(iện tại bạn có khoảng trên 2 ngàn mã VT, tương lai fát sinh là điều tất nhiên. Nhưng bạn xài đến 8 kí số cho mỗi mã mình thấy hơi bị lãng fí!

Như là mình thì xài 5 kí tự (gồm 4 kí số & 1 kí tự) dạng A0123 làm mã

A dùng để fân loại VT, như
PHP:
  C: Thuộc hàng cơ khí
  D: Thuộc chi tiết/hàng điện
  E: Chi tiết về điện tử
  F: Chi tiết khác
  N: Chi tiết đồ nhựa
  G: Bao bì giấy các loại
  X: . . . . .
Mình muốn nói rằng tìm 1 mã VT trong hàng 10 triệu vẫn chậm hơn tìm trong chục vạn thứ/món cần tìm.

Những mong bạn xem xét & lưu í ngay từ đầu, khi mới xậy dựng CSDL; Chứ sau này sửa sẽ khó.
--=0 --=0 --=0
 
Upvote 0
Cho mình góp vui với bạn 1 í nho nhỏ về mã vật tư(VT) như sau:

/-(iện tại bạn có khoảng trên 2 ngàn mã VT, tương lai fát sinh là điều tất nhiên. Nhưng bạn xài đến 8 kí số cho mỗi mã mình thấy hơi bị lãng fí!

Như là mình thì xài 5 kí tự (gồm 4 kí số & 1 kí tự) dạng A0123 làm mã

A dùng để fân loại VT, như
PHP:
  C: Thuộc hàng cơ khí
  D: Thuộc chi tiết/hàng điện
  E: Chi tiết về điện tử
  F: Chi tiết khác
  N: Chi tiết đồ nhựa
  G: Bao bì giấy các loại
  X: . . . . .
Mình muốn nói rằng tìm 1 mã VT trong hàng 10 triệu vẫn chậm hơn tìm trong chục vạn thứ/món cần tìm.

Những mong bạn xem xét & lưu í ngay từ đầu, khi mới xậy dựng CSDL; Chứ sau này sửa sẽ khó.
--=0 --=0 --=0
Cám ơn bác về những lời góp ý chân thành. Thật ra thì em chỉ là kế toán cũng nắm sơ sơ được quy luật xây dựng mã vật tư của bộ phận QC/KCS tại công ty. Em cũng xin chia sẻ sơ sơ qua như thế này ạ.
Công ty em hiện nay có toàn bộ tất cả 5955 mã vật tư. Nhưng đang sử dụng thì chỉ có khoảng trên 2 ngàn mã như trong danh mục.
Quy tắc: Mã hàng hóa = PXXYYZZZ
Trong đó:
---> P: mã phân loại
---> XX: mã nhóm
---> YY: mã phân nhóm
---> ZZZ: Số thứ tự của vật tư trong phân nhóm
Ví dụ: 10201012 ---> Nguyên vật liệu - Vật tư điện - Biến tần - Số thứ tự vật tư là 012
40800003 ---> Máy móc - Máy in - 00 - Số thứ tự loại máy là 003
 
Upvote 0
Các bác giúp em dùng VBA để insert các dòng hàng có dữ liệu từ Sheet "TCVN" sang sheet "Lket" với ạ
Công việc của em cụ thể là
1. từ Sheet "TCVN" sheet này các cột sẽ thay đổi liên tục theo từng TCVN (lúc 1 dòng cột, lúc thì đên 100 dòng cột)
2. Sau đó em sang Sheet "LKet", nếu dòng hàng ít hơn dòng hàng bên Sheet"TCVN", thì mình sẽ insert ra dòng hàng cho đủ như bên "TCVN". Còn nếu nhiều hơn dòng hàng so với Sheet"TCVN" thì mình sẽ xóa các dòng hàng đi để cho bằng như "TCVN"

Các bác cho e giải pháp dùng VBA để nó tự động được không ạ, hoặc dùng Macro sử dụng nút button cũng dc ạ
Em xin cảm ơn
 

File đính kèm

  • TCVN.xls
    18 KB · Đọc: 60
Upvote 0
Một lần nữa cám ơn bác. Em đã chỉnh sửa lại và có thể thay thế file đang sử dụng (Nhanh nhạy hơn nhiều). Người ta gọi đây là bước tiến công nghệ ;;;;;;;;;;;. Và đây là file của em sau khi chỉnh sửa lại. Thân ái và quyết thắng!

Bác có thể thêm tùy chọn ở trang báo cáo nhập xuất tồn (N-X-T) không:
- Chọn báo cáo từ ngày ... đến ngày ... (cái nào có trong ngày này thì hiện thị)
- Chọn báo cáo theo mỗi loại, điện, nhựa, vật tư, thành phẩm,...
Cảm ơn bác ;;;;;;;;;;;
 
Upvote 0
Web KT
Back
Top Bottom