Lại là hàm để tăng số fiếu một cách tự động
Như trong hình đính kèm ta thấy
Trong năm 2013 có 2 lần nhập/xuất loại mặt hàng AA cũng như BB
Cũng trong năm đó có hơn 2 lần nhập xuất mặt hàng BC
Như vậy mặt hàng nhập/xuất đầu tiên sẽ là (01/13/13) là nhập loại hàng AA, nên sẽ có số fiếu sẽ là NAA13001
Mà trong đó kí tự đầu chỉ ra loại nhập/xuất
AA là mã loại hàng;
13 chỉ ra 2 số cuối của năm &
"001" là số fiếu đầu của loại hàng này trong năm
Ở lần nhập xuất lần thứ 6 của năm này số fiếu sẽ là NAA13002
. . . .
Ở dòng 14 (lần xuất nhập thứ 9) mặt hàng xuất là DB nên sẽ có số fiếu XDB14001
Hàm tăng số fiếu 1 cách tự động có nội dung như sau:
PHP:
Option Explicit
Function SoFieu(Ngay As Range, SoTruoc As Range, Lo As Range, NX As String) As String
Dim Dem As Integer, STT As Integer, J As Long, Rws As Long, Nam As Integer
Dim Rng As Range
Dem = Ngay.Rows.Count
SoFieu = NX & TachTen(Lo.Value) & CStr(Year(Ngay(Dem).Value) Mod 100)
If Year(Ngay(Dem - 1).Value) < Year(Ngay(Dem).Value) Then
SoFieu = SoFieu & "001"
Else
Rws = Ngay.Rows.Count
Nam = Year(Lo.Offset(, -1).Value)
For J = Rws - 1 To 1 Step -1
If Ngay(J).Offset(, 1).Value = Lo.Value And Year(Ngay(J).Value) = Nam Then
STT = CInt(Right(Ngay(J).Offset(, 6).Value, 3)) + 1 '7'
SoFieu = SoFieu & Right("00" & CStr(STT), 3)
Exit Function
End If
If Year(Ngay(J).Value) < Nam Then
SoFieu = SoFieu & "001": Exit Function
End If
Next J
SoFieu = SoFieu & "001"
End If
End Function
Hàm đề lấy mã lô hàng được viết như sau:
Mã:
Function TachTen(HT As String) As String
Dim VT As Byte
HT = Trim(HT)
If HT = "" Then
TachTen = ""
Else
VT = InStrRev(HT, " ", Len(HT))
If VT = 0 Then
TachTen = HT
Else
TachTen = Mid(HT, VT + 1)
End If
End If
End Function
(Các bạn có thể tham khảo thêm tại: http://www.giaiphapexcel.com/forum/showthread.php?102497-Tự-động-đánh-số-phiếu-Nhập-Xuất )