Code VBA về số phiếu tự động

Liên hệ QC

DungMD

Thành viên chính thức
Tham gia
21/6/21
Bài viết
65
Được thích
16
Tôi đã nghiên cứu 1 Code đánh số phiếu tự động như sau:
Chạy khá ổn định nhưng tôi vẫn lăn tăn 1 chút cần các bác góp ý
1. Làm cách nào để đưa 2 số cuối của cột D, tức là số năm (2019 lấy 19) gán vào số phiếu
2. Đồng thời mỗi năm số phiếu lại reset lại từ 1 trở đi

Đang trăn trở nhất nhiều, bác nào có thể góp ý để tôi khắc phục được không ?

Untitled.jpg




Sub SO_phieu()

Dim arr, i As Long, lR As Long, kq, so As Long, Dic As Object, dk As String, dks As String
Set Dic = CreateObject("scripting.dictionary")
With Sheets("NKC")
lR = .Range("P" & Rows.Count).End(xlUp).Row
arr = .Range("C5:R" & lR).Value
ReDim kq(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
If arr(i, 16) = "chi" Then
dk = "PC-"
ElseIf arr(i, 1) = "TDK" Then
dk = "TDK"
ElseIf arr(i, 16) = "thu" Then
dk = "PT-"
ElseIf arr(i, 16) = "baono" Then
dk = "BN-"
ElseIf arr(i, 16) = "baoco" Then
dk = "BC-"

ElseIf arr(i, 16) = "nhapkho" Then
dk = "PN-"
ElseIf arr(i, 16) = "xuatkho" Then
dk = "PX-"
ElseIf arr(i, 16) = " " Then
dk = "PKT-"
ElseIf arr(i, 16) = Empty Then
dk = "PKT-"
Else
dk = Empty
End If
If dk <> Empty Then
dks = dk & "#" & arr(i, 1) & "#" & arr(i, 2)
If Not Dic.Exists(dk) Then
Dic.Add dk, 1
Dic.Item(dks) = 1
kq(i, 1) = dk & Format(1, "000")
Else
so = Dic.Item(dk)
If Not Dic.Exists(dks) Then
so = so + 1
Dic.Add dks, ""
End If
kq(i, 1) = dk & Format(so, "000")
Dic.Item(dk) = so
End If
End If
Next i
.Range("B5:B" & lR).Value = kq
End With
End Sub
 

File đính kèm

  • SoTT.xlsx
    11.4 KB · Đọc: 81
Tôi đã nghiên cứu 1 Code đánh số phiếu tự động như sau:
Chạy khá ổn định nhưng tôi vẫn lăn tăn 1 chút cần các bác góp ý
1. Làm cách nào để đưa 2 số cuối của cột D, tức là số năm (2019 lấy 19) gán vào số phiếu
2. Đồng thời mỗi năm số phiếu lại reset lại từ 1 trở đi

Đang trăn trở nhất nhiều, bác nào có thể góp ý để tôi khắc phục được không ?

View attachment 261046
Bạn hiền thử xem:
Mã:
Sub SO_phieu()

Dim arr, i As Long, lR As Long, kq, so As Long, Dic As Object, dk As String, dks As String
Set Dic = CreateObject("scripting.dictionary")
With Sheets("NKC")
lR = .Range("P" & Rows.Count).End(xlUp).Row
arr = .Range("C5:R" & lR).Value
ReDim kq(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
If arr(i, 16) = "chi" Then
dk = "PC-"
ElseIf arr(i, 1) = "TDK" Then
dk = "TDK"
ElseIf arr(i, 16) = "thu" Then
dk = "PT-"
ElseIf arr(i, 16) = "baono" Then
dk = "BN-"
ElseIf arr(i, 16) = "baoco" Then
dk = "BC-"

ElseIf arr(i, 16) = "nhapkho" Then
dk = "PN-"
ElseIf arr(i, 16) = "xuatkho" Then
dk = "PX-"
ElseIf arr(i, 16) = " " Then
dk = "PKT-"
ElseIf arr(i, 16) = Empty Then
dk = "PKT-"
Else
dk = Empty
End If
If dk <> Empty Then
dks = dk & "#" & arr(i, 1) & "#" & arr(i, 2)
If Not Dic.Exists(dk) Then
Dic.Add dk, 1
Dic.Item(dks) = 1
kq(i, 1) = dk & Format(1, "000") & Format(arr(i, 2), "yy")
Else
so = Dic.Item(dk)
If Not Dic.Exists(dks) Then
so = so + 1
Dic.Add dks, ""
End If
kq(i, 1) = dk & Format(so, "000") & Format(arr(i, 2), "yy")
Dic.Item(dk) = so
End If
End If
Next i
.Range("B5:B" & lR).Value = kq
End With
End Sub
 
Upvote 0
Bạn hiền thử xem:
Mã:
Sub SO_phieu()

Dim arr, i As Long, lR As Long, kq, so As Long, Dic As Object, dk As String, dks As String
Set Dic = CreateObject("scripting.dictionary")
With Sheets("NKC")
lR = .Range("P" & Rows.Count).End(xlUp).Row
arr = .Range("C5:R" & lR).Value
ReDim kq(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
If arr(i, 16) = "chi" Then
dk = "PC-"
ElseIf arr(i, 1) = "TDK" Then
dk = "TDK"
ElseIf arr(i, 16) = "thu" Then
dk = "PT-"
ElseIf arr(i, 16) = "baono" Then
dk = "BN-"
ElseIf arr(i, 16) = "baoco" Then
dk = "BC-"

ElseIf arr(i, 16) = "nhapkho" Then
dk = "PN-"
ElseIf arr(i, 16) = "xuatkho" Then
dk = "PX-"
ElseIf arr(i, 16) = " " Then
dk = "PKT-"
ElseIf arr(i, 16) = Empty Then
dk = "PKT-"
Else
dk = Empty
End If
If dk <> Empty Then
dks = dk & "#" & arr(i, 1) & "#" & arr(i, 2)
If Not Dic.Exists(dk) Then
Dic.Add dk, 1
Dic.Item(dks) = 1
kq(i, 1) = dk & Format(1, "000") & Format(arr(i, 2), "yy")
Else
so = Dic.Item(dk)
If Not Dic.Exists(dks) Then
so = so + 1
Dic.Add dks, ""
End If
kq(i, 1) = dk & Format(so, "000") & Format(arr(i, 2), "yy")
Dic.Item(dk) = so
End If
End If
Next i
.Range("B5:B" & lR).Value = kq
End With
End Sub
Lấy được 2 số phía sau rồi, còn vấn đề năm reset lại từ số 0 là ko dc bạn ạ
 
Upvote 0
Tôi đã nghiên cứu 1 Code đánh số phiếu tự động như sau:
Chạy khá ổn định nhưng tôi vẫn lăn tăn 1 chút cần các bác góp ý
1. Làm cách nào để đưa 2 số cuối của cột D, tức là số năm (2019 lấy 19) gán vào số phiếu
2. Đồng thời mỗi năm số phiếu lại reset lại từ 1 trở đi

Đang trăn trở nhất nhiều, bác nào có thể góp ý để tôi khắc phục được không ?

View attachment 261046
Dữ liệu NKC vi phạm nguyên tắc ghi nhận theo trình tự thời gian làm code chạy chậm khi dữ liệu nhiều, nếu thỏa điều kiện trình tự thời gian code dài hơn tí nhưng tốc độ nhanh hơn
Mã:
Option Explicit
Sub SO_phieu()
  Dim sArr(), Res(), Dic As Object
  Dim sRow&, i&, yy$, ct$, iKey$, ikey2$
 
  Set Dic = CreateObject("scripting.dictionary")
  With Sheets("NKC")
    sArr = .Range("C5:R" & .Range("P" & Rows.Count).End(xlUp).Row).Value
  End With
  sRow = UBound(sArr)
  ReDim Res(1 To sRow, 1 To 1)
  For i = 1 To sRow
    Select Case sArr(i, 16)
      Case "chi":         ct = "PC-"
      Case "Tct":         ct = "Tct"
      Case "thu":         ct = "PT-"
      Case "baono":       ct = "BN-"
      Case "baoco":       ct = "BC-"
      Case "nhapkho":     ct = "PN-"
      Case "xuatkho":     ct = "PX-"
      Case " ", Empty:    ct = "PKT-"
      Case Else:                      ct = Empty
    End Select
   
    If ct <> Empty Then
      yy = Right(Year(sArr(i, 2)), 2)
      iKey = ct & "#" & sArr(i, 1) & "#" & sArr(i, 2)
      ikey2 = yy & "#" & ct
      If Not Dic.Exists(iKey) Then
        Dic.Add iKey, ""
        Dic.Item(ikey2) = Dic.Item(ikey2) + 1
      End If
      Res(i, 1) = ct & yy & Format(Dic.Item(ikey2), "000")
    End If
  Next i
  Sheets("NKC").Range("A5").Resize(sRow).Value = Res
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Dữ liệu NKC vi phạm nguyên tắc ghi nhận theo trình tự thời gian làm code chạy chậm khi dữ liệu nhiều, nếu thỏa điều kiện trình tự thời gian code dài hơn tí nhưng tốc độ nhanh hơn
Mã:
Option Explicit
Sub SO_phieu()
  Dim sArr(), Res(), Dic As Object
  Dim sRow&, i&, yy$, ct$, iKey$, ikey2$
 
  Set Dic = CreateObject("scripting.dictionary")
  With Sheets("NKC")
    sArr = .Range("C5:R" & .Range("P" & Rows.Count).End(xlUp).Row).Value
  End With
  sRow = UBound(sArr)
  ReDim Res(1 To sRow, 1 To 1)
  For i = 1 To sRow
    Select Case sArr(i, 16)
      Case "chi":         ct = "PC-"
      Case "Tct":         ct = "Tct"
      Case "thu":         ct = "PT-"
      Case "baono":       ct = "BN-"
      Case "baoco":       ct = "BC-"
      Case "nhapkho":     ct = "PN-"
      Case "xuatkho":     ct = "PX-"
      Case " ", Empty:    ct = "PKT-"
      Case Else:                      ct = Empty
    End Select
  
    If ct <> Empty Then
      yy = Right(Year(sArr(i, 2)), 2)
      iKey = ct & "#" & sArr(i, 1) & "#" & sArr(i, 2)
      ikey2 = yy & "#" & ct
      If Not Dic.Exists(iKey) Then
        Dic.Add iKey, ""
        Dic.Item(ikey2) = Dic.Item(ikey2) + 1
      End If
      Res(i, 1) = ct & yy & Format(Dic.Item(ikey2), "000")
    End If
  Next i
  Sheets("NKC").Range("A5").Resize(sRow).Value = Res
End Sub
Vâng tôi cảm ơn bác, tuy nhiên việc đánh số lại từ đầu cho mỗi năm có khả thi trong trường hợp này không Anh ?

Ví dụ phiếu chi hết 2019 sang 2020 bắt đầu lại Pc001
 
Upvote 0
Vâng tôi cảm ơn bác, tuy nhiên việc đánh số lại từ đầu cho mỗi năm có khả thi trong trường hợp này không Anh ?

Ví dụ phiếu chi hết 2019 sang 2020 bắt đầu lại Pc001
Bắt buộc phải đánh số lại từ đầu năm, tuy nhiên chỉ có 3 chữ số có thể thiếu
 
Upvote 0
Tác giả bài đăng xài 2 ký số để chỉ số năm phát sinh phiếu;
Nếu là mình thì 2 kí tự hay ký số có thể làm còn nhiều hơn thế: Ghi mã năm & mã tháng
ví dụ
GPE99888: thuộc đơn vị có mã là GPE, Con 9 bên trái nhất chỉ năm 2019, năm 2020 sẽ là A;
Con 9 thứ 2 chỉ tháng 9; tháng sau tháng này sẽ là A
Còn 3 con số cuối có lặp lại theo năm hay theo tháng là tùy mong muốn của chúng ta.

Thân ái & chúc vui hơn để vượt qua đợt dịch Vũ hán này!
 
Upvote 0
Bắt buộc phải đánh số lại từ đầu năm, tuy nhiên chỉ có 3 chữ số có thể thiếu
Vâng, vậy khi code như thế có phải code theo cách khác bản này không? , Code của bác tôi đã thử nhưng không chạy lại từ đầu dc
Bài đã được tự động gộp:

Tác giả bài đăng xài 2 ký số để chỉ số năm phát sinh phiếu;
Nếu là mình thì 2 kí tự hay ký số có thể làm còn nhiều hơn thế: Ghi mã năm & mã tháng
ví dụ
GPE99888: thuộc đơn vị có mã là GPE, Con 9 bên trái nhất chỉ năm 2019, năm 2020 sẽ là A;
Con 9 thứ 2 chỉ tháng 9; tháng sau tháng này sẽ là A
Còn 3 con số cuối có lặp lại theo năm hay theo tháng là tùy mong muốn của chúng ta.

Thân ái & chúc vui hơn để vượt qua đợt dịch Vũ hán này!
Thực ra mình muốn trực quan nhất có thể, ko muốn quy đỏi vì có thể người mới sẽ không hiểu
Bài đã được tự động gộp:

Bắt buộc phải đánh số lại từ đầu năm, tuy nhiên chỉ có 3 chữ số có thể thiếu
Sorry bác tôi nhìn sai, code của bác rất hay, cảm ơn bác nhiều
 
Upvote 0
Tác giả bài đăng xài 2 ký số để chỉ số năm phát sinh phiếu;
Nếu là mình thì 2 kí tự hay ký số có thể làm còn nhiều hơn thế: Ghi mã năm & mã tháng
ví dụ
GPE99888: thuộc đơn vị có mã là GPE, Con 9 bên trái nhất chỉ năm 2019, năm 2020 sẽ là A;
Con 9 thứ 2 chỉ tháng 9; tháng sau tháng này sẽ là A
Còn 3 con số cuối có lặp lại theo năm hay theo tháng là tùy mong muốn của chúng ta.

Thân ái & chúc vui hơn để vượt qua đợt dịch Vũ hán này!

Thực ra mình muốn trực quan nhất có thể, ko muốn quy đỏi vì có thể người mới sẽ không hiểu
Mạn phép anh @HieuCD, Dựa trên code của anh, tôi có sửa lại code theo hướng này;
Trong mã hóa đơn ấy sẽ có chủng loại hóa đơn : Phiếu thu (PT), phiếu nhập(PN), báo cáo(BC),.... ngày. tháng.năm, số thứ tự phiếu theo chủng loại (001,....) và thứ tự phiếu nếu trong một ngày có nhiều hơn một phát sinh có tất cả các yếu tố giống nhau(sIkey). Có thể mã số hơi dài nhưng sẽ rất dễ cho người dùng khi nhìn vào hóa đơn
ví dụ: PT-23.12.19.001.2 sẽ cho người dùng biết là ngày 23/12/2019 có 2 nghiệp vụ thu giống nhau và số này là thể hiện nghiệp vụ lần 2 ấy.
Nhờ anh SQ_DA xem code và nếu có thể mã hóa lại cho mã hóa đơn ngắn lại mà vẫn thể hiện được các nội dung đã nêu. Trân trọng cảm ơn anh!
 

File đính kèm

  • TẠO MÃ SỐ PHIÊU CÓ NGÀY THÁNG NĂM KHÔNG TRÙNG VÀ TỰ CHUYỂN KHI SANG NĂM KHÁC.xlsm
    21.9 KB · Đọc: 55
Upvote 0
. . . . Trong mã hóa đơn ấy sẽ có chủng loại hóa đơn : Phiếu thu (PT), phiếu nhập(PN), báo cáo(BC),....(1) ngày. tháng.năm, số thứ tự phiếu theo chủng loại (001,....) và thứ tự phiếu nếu trong một ngày có nhiều hơn một phát sinh có tất cả các yếu tố giống nhau(sIkey). Có thể mã số hơi dài nhưng sẽ rất dễ cho người dùng khi nhìn vào hóa đơn
. . . . (2) Nhờ anh SQ_DA xem code và nếu có thể mã hóa lại cho mã hóa đơn ngắn lại mà vẫn thể hiện được các nội dung đã nêu. Trân trọng cảm ơn anh!
(1) Nên là YYMMDD để tiện trong việc sắp xếp
(2) Hàm để mã hóa Năm-tháng-ngày thành 3 ký tự như sau:
PHP:
Function MaNTN(Optional Dat As Date) As String
 Const Alf As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 
 If Dat < 9 Then Dat = Date
 MaNTN = "_" & Mid$(Alf, Year(Dat) - 2010, 1)
 MaNTN = MaNTN & Mid(Alf, 1 + Month(Dat), 1) & Mid(Alf, 1 + Day(Dat), 1)
End Function
Nếu cần thiết ta có thể viết ra 1 hàm để đưa mã này thành dữ liệu kiểu ngày-tháng-năm như ban đầu.

Chúc mọi người vui, khỏe & trãi qua kì dịch Vũ Hán lần nghiệt ngã này!
 
Upvote 0
Mạn phép anh @HieuCD, Dựa trên code của anh, tôi có sửa lại code theo hướng này;
Trong mã hóa đơn ấy sẽ có chủng loại hóa đơn : Phiếu thu (PT), phiếu nhập(PN), báo cáo(BC),.... ngày. tháng.năm, số thứ tự phiếu theo chủng loại (001,....) và thứ tự phiếu nếu trong một ngày có nhiều hơn một phát sinh có tất cả các yếu tố giống nhau(sIkey). Có thể mã số hơi dài nhưng sẽ rất dễ cho người dùng khi nhìn vào hóa đơn
ví dụ: PT-23.12.19.001.2 sẽ cho người dùng biết là ngày 23/12/2019 có 2 nghiệp vụ thu giống nhau và số này là thể hiện nghiệp vụ lần 2 ấy.
Nhờ anh SQ_DA xem code và nếu có thể mã hóa lại cho mã hóa đơn ngắn lại mà vẫn thể hiện được các nội dung đã nêu. Trân trọng cảm ơn anh!
Bạn dùng code mình thoải mái không cần xin phép, các công thức và code mình viết nhằm mục đích cho mọi người sử dụng
Số chứng từ thường chỉ có 2 thành phần: loại chứng từ và số thứ tự, sang niên độ kế toán (năm) sau các chứng từ năm trước được đưa vào lưu trữ dài hạn theo phân loại năm, do đó không cần thông tin về năm trong mã số chứng từ, dĩ nhiên thêm thông tin năm trong số chứng từ sẽ dể phân biệt hơn
Số thứ tự chứng từ được đánh số lại từ đầu theo năm hoặc theo tháng, nếu theo tháng thường phải có thông tin tháng để phân biệt
Hóa đơn là loại chứng từ đặt biệt có tính pháp lý liên quan đến nhiều đơn vị trong thời gian dài (nhiều năm) nên không được trùng, ngoài số thứ tự (có thể trùng) hóa đơn còn có số seri, với hóa đơn do đơn vị tự phát hành có thể thêm 1 số cuối là số kiểm tra nhằm phát hiện sai sót hoặc số hóa đơn bị làm giả
 
Upvote 0
Mạn phép anh @HieuCD, Dựa trên code của anh, tôi có sửa lại code theo hướng này;
Trong mã hóa đơn ấy sẽ có chủng loại hóa đơn : Phiếu thu (PT), phiếu nhập(PN), báo cáo(BC),.... ngày. tháng.năm, số thứ tự phiếu theo chủng loại (001,....) và thứ tự phiếu nếu trong một ngày có nhiều hơn một phát sinh có tất cả các yếu tố giống nhau(sIkey). Có thể mã số hơi dài nhưng sẽ rất dễ cho người dùng khi nhìn vào hóa đơn
ví dụ: PT-23.12.19.001.2 sẽ cho người dùng biết là ngày 23/12/2019 có 2 nghiệp vụ thu giống nhau và số này là thể hiện nghiệp vụ lần 2 ấy.
Nhờ anh SQ_DA xem code và nếu có thể mã hóa lại cho mã hóa đơn ngắn lại mà vẫn thể hiện được các nội dung đã nêu. Trân trọng cảm ơn anh!
Theo cá nhân em, nghiệp vụ không trùng nhau chính là phân biệt bằng số phiếu, vì vậy trong kế toán số phiếu điền thêm ngày không mang nhiều ý nghĩa và quá dài ( dài quá ảnh hưởng tới cột) => trong một trang ko nhìn thấy được chỉ tiêu khác
Xin góp ý
 
Upvote 0
Theo mình cũng tùy loại hình cơ quan nữa;
Loại hình chỉ sản xuất thì buôn bán trong ngày sẽ ít;
Loại hình bán lẽ như siêu thì thì hàng ngày có đến vạn số hóa đơn được ban hành thì phân biết đến ngày là cần thiết. Mình đoan rằng: Những ngày khuyến mãi cao trào, ngoài mã số của quầy, có thể người ta mã hóa đến giờ nữa ấy chứ lị!

:D
Còn đây là hàm dịch mã Năm-Tháng-Ngày thành số liệu ngày
PHP:
Const Alf As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Function StrToDate(GPE As String) As Date
 Dim Nm As Integer, Thg As Byte, Ng As Integer
 
 If Len(GPE) = 4 Then GPE = Mid(GPE, 2, 3)
 Nm = 2010 + InStr(Alf, Left(GPE, 1))
 Thg = InStr(Alf, Mid(GPE, 2, 1)) - 1
 Ng = InStr(Alf, Right(GPE, 1)) - 1
 StrToDate = Format(DateSerial(Nm, Thg, Ng), "MM/DD/yyyy")
End Function


Chúc các bạn vui khỏe & vượt qua nạn dịch lần IV này 1 cách bình iên!
 
Lần chỉnh sửa cuối:
Upvote 0
Theo mình cũng tùy loại hình cơ quan nữa;
Loại hình chỉ sản xuất thì buôn bán trong ngày sẽ ít;
Loại hình bán lẽ như siêu thì thì hàng ngày có đến vạn số hóa đơn được ban hành thì phân biết đến ngày là cần thiết. Mình đoan rằng: Những ngày khuyến mãi cao trào, ngoài mã số của quầy, có thể người ta mã hóa đến giờ nữa ấy chứ lị!

Chúc các bạn vui khỏe & vượt qua nạn dịch lần IV này 1 cách bình iên!
Thực ra Số của phiếu nhằm 2 mục đích chính là: Tìm lại dòng chứng từ đó trong dữ liệu, 2 là sắp xếp chứng từ đó bên ngoài. Nếu cho ngày tháng, giờ phút vào thực ra không để làm gì cả, vì suy cho cùng khi nhìn thấy ngày tháng đó rồi thì cũng có biết nó nằm ở đâu trong đống giấy tờ kia đâu, phải không ?
 
Upvote 0
Mình với bạn ta đi sâu vô 2 mục đích của 'Số Phiếu' 1 tẹo:

(1) Tìm lại dòng chứng từ đó: Vậy qui trình tìm kiếm dòng chứng từ này hiện nay của bạn là như thế nào; bạn cho biết được không?
Theo mình thì các chứng từ có chứa mã Năm_Tháng_Ngày (NTN) thì công cuộc tìm kiếm sẽ nhanh hơn 1 tẹo nào đó nha!

(2) Sắp xếp: Nếu mã chứng từ có thêm mã NTN thì ta đã đi hơn nữa đoạn đường trong quá trình sắp xếp rồi.
 
Upvote 0
1. Mình thường làm thế này: Khi các bạn kế toán nhập liệu xong, thì chọn chạy số phiếu tự động, cuối ngày các bạn ấy sẽ in phiếu ra và sắp xếp theo thứ tự ( số phiếu từ nhỏ tới lớn), và chỉ quan tâm tới số phiếu. ( nếu nhìn vào ngày tháng năm lúc đó cũng đâu giúp gì vậy vậy yêu cầu của mình chỉ là xếp theo thứ tự phiếu mà thôi )
2. Mỗi khi tìm chứng từ, các bạn ấy chỉ cần lọc số phiếu và tìm theo số phiếu đó( bên mình ngoài số phiếu còn theo dõi theo STT của dòng trên NKC ( đánh bút chì vào chính chứng từ theo STT này). Vì vậy dù để đâu vẫn tìm thấy chứng từ
Ngoài đó ra bên mình chưa thực sự thấy nhu cầu của thêm ngày tháng

Nếu theo trường hợp của Chị @HUONGHCKT có thê trong trương hợp bút toán kép ( có thể bị chia thành 2 phiếu - trong trường hợp đó chỉ là 1 nghiệp vụ ) gây khó khăn cho sắp xếp
 
Upvote 0
1. Mình thường làm thế này: Khi các bạn kế toán nhập liệu xong, thì chọn chạy số phiếu tự động, cuối ngày các bạn ấy sẽ in phiếu ra và sắp xếp theo thứ tự ( số phiếu từ nhỏ tới lớn), và chỉ quan tâm tới số phiếu. ( nếu nhìn vào ngày tháng năm lúc đó cũng đâu giúp gì vậy vậy yêu cầu của mình chỉ là xếp theo thứ tự phiếu mà thôi )
2. Mỗi khi tìm chứng từ, các bạn ấy chỉ cần lọc số phiếu và tìm theo số phiếu đó( bên mình ngoài số phiếu còn theo dõi theo STT của dòng trên NKC ( đánh bút chì vào chính chứng từ theo STT này). Vì vậy dù để đâu vẫn tìm thấy chứng từ
Ngoài đó ra bên mình chưa thực sự thấy nhu cầu của thêm ngày tháng

Nếu theo trường hợp của Chị @HUONGHCKT có thê trong trương hợp bút toán kép ( có thể bị chia thành 2 phiếu - trong trường hợp đó chỉ là 1 nghiệp vụ ) gây khó khăn cho sắp xếp
Trường hợp một người mua hàng hai lần, ba lần hay một người nộp tiền hai lần, ba lần... với cùng một số tiền như nhau trong cùng một ngày thì số phiếu được ghi thế nào? nếu để máy chạy tự động ra số phiếu thì lmaf thế nào để máy phân biệt, khi cần truy xuất lại số phiếu ấy để đối chiếu thì sẽ truy xuất ra số phiếu nào? Thêm ngày tháng và số thứ tự.001.2 sẽ rất dễ cho người sủ dụng...
Ở một số đơn vị mã số trên hóa đơn còn có cả tên đối tác (được viết tắt-theo quy ước) nữa. Khi kiểm tra và đối chiếu lại, người kiểm tra chỉ cần nhìn vào mã số mà biết là hóa đơn này của đơn vị nào, ngày phát hành,......
Tất nhiên là nó dài nhưng mang, theo nhiều thông tin tiện ích cho việc truy xuất, phân biệt để lưu trữ...và cơ bản là do người sử dụng thấy cần thiết hay không có nhu cầu mà thôi.
 
Upvote 0
loại chứng từ và số thứ tự, sang
Trường hợp một người mua hàng hai lần, ba lần hay một người nộp tiền hai lần, ba lần... với cùng một số tiền như nhau trong cùng một ngày thì số phiếu được ghi thế nào? nếu để máy chạy tự động ra số phiếu thì lmaf thế nào để máy phân biệt, khi cần truy xuất lại số phiếu ấy để đối chiếu thì sẽ truy xuất ra số phiếu nào? Thêm ngày tháng và số thứ tự.001.2 sẽ rất dễ cho người sủ dụng...
Ở một số đơn vị mã số trên hóa đơn còn có cả tên đối tác (được viết tắt-theo quy ước) nữa. Khi kiểm tra và đối chiếu lại, người kiểm tra chỉ cần nhìn vào mã số mà biết là hóa đơn này của đơn vị nào, ngày phát hành,......
Tất nhiên là nó dài nhưng mang, theo nhiều thông tin tiện ích cho việc truy xuất, phân biệt để lưu trữ...và cơ bản là do người sử dụng thấy cần thiết hay không có nhu cầu mà thôi.
1 Trường hợp người mua hàng 2,3 ,4 hay 1000 lần thì nghiệp vụ nào trước thì cứ theo thứ tự mà hạch toán. ( số phiếu còn đánh dựa trên mã của STT để phân biệt trùng nghiệp vụ hay không ) Trong trường hợp cùng 1 ngày vậy thì thêm các chỉ tiêu ngày theo chị cũng đâu giải quyết được vấn đề đó phải không ?
2Ở các đơn vị trên hóa đơn viết quy ước tên đối tác làm gì ( trong khi tên địa chỉ, ngày tháng phát hành , tên đợn vị đầy đủ đã thể hiện trên hóa đơn ), cần gì phải tìm mã số
3 Đương nhiên mọi thông tin đều được dùng để truy xuất, nhưng lấy thông tin nào để cho việc lấy giết gà mà không cần dao mổ trâu là 1 chuyện khác.
4. Về góc độ kiểm soát, việc đánh số phiếu chi không có tính liên lục và chèn các số con hoặc a,b,c...xyz kiến những người kiểm tra sổ sách sẽ phải đặt dấu hỏi chấm về công tác kế toán của Chị ( theo nguyên tắc số phải được đánh liên tục - ko được chèn )

Việc đánh số thế nào là tùy chị thôi, tuy nhiên có những chuẩn mực kế toán cần phải tôn trọng !
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom