Sổ tay về các hàm tự tạo

Sa DQ

Thành viên năng động
Tham gia
17/6/14
Bài viết
76
Điểm thành tích
8

Lại là hàm để tăng số fiếu một cách tự động
Ở công ty nọ người ta muốn được tự động đánh số 1 cách tự động tăng dần theo từng loại mặt hàng trong từng năm;
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 )
 

File đính kèm

  • SoFieu.JPG
    SoFieu.JPG
    77,6 KB · Đọc: 176

Sa DQ

Thành viên năng động
Tham gia
17/6/14
Bài viết
76
Điểm thành tích
8
Hàm tự tạo đưa ra kết quả của ô lựa chọn (Validation) & làm nguồn cho ô lựa chọn tiếp theo

Giải thích tiêu đề theo file đính kèm:

Ở 1 trang tính ta có bảng liệt kê các mặt hàng theo chủng loại của nó, như

Lương thực | Thịt | Thủy sản | Rau | Củ . . .| Quả | Trái cây
Gạo tẻ . . . | Heo. .|Cá mè . . .|Muống |Đậu . . .|Ớt . .|Chôm chôm
Nàng thơm .|. Gà. .|Bông lau. .|Dền. . |Cải. . . . |Ổi.. .|Sầu riêng
Nếp cẩm . .| Vịt . .|Mực. . . . .|Bắp cải|Cà rốt . .|Khế |Nhót
Nếp than . .|Bò. . .|Ếch . . . . |Su su. .|Khoai tây|Gất | Mận
Chợ Đào. . .|Dê. . .|Lươn. .. . .|Mướp. .| . . . . . .|. . . | . . .

Ở đây hàng in đậm thể hiện chũng loại mặt hàng; Dưới nó là các mặt hàng thuộc chũng loại đó.
Hơn nữa, các loại mặt hàng được đưa vô làm nguồn cho hộp Validation.
Khi ta lực chọn 1 mặt hàng nào đó trong ô Validation thứ nhất, ta sẽ có những mặt hàng tương ứng với nó trong ô Validation thứ hai để chọn 1 trong các mặt hàng của nó trong chũng loại đó.

Xin mời các bạn xem file sẽ rõ.


Hàm xác định "Ngày của cha"

Người ta định nghĩa rằng ngày của Cha là ngày chủ nhật thứ ba của tháng sáu;

Ta có thể viết hàm người dùng như sau để xác định ngày đó khi cung cấp số chỉ năm đó:
PHP:
Option Explicit
Function NgayCuaCha(Nam%) As Date
 Dim Dat As Date
 Dat = DateSerial(Nam, 6, 22)
 NgayCuaCha = Dat - Weekday(Dat - 1)
End Function
 

Tải bộ cài phần mềm Dự toán GXD, Đấu thầu GXD, Thanh Quyết toán GXD, Quản lý chất lượng GXD. Dành cho người mua bản quyền
Kích để xem khóa học Dự toán công trình
Kích để xem khóa học Dự toán công trình
Phần mềm quản lý chất lượng công trình QLCL GXD
Tìm hiểu khóa học Thanh Quyết toán GXD

Các bài viết mới

Top