Tự động tăng số chứng từ.

Liên hệ QC

sealand

Thành viên gạo cội
Tham gia
16/5/08
Bài viết
4,884
Được thích
7,687
Giới tính
Nam
Nghề nghiệp
Kế Toán
Các anh chị giúp tôi khi cập nhật thì số chứng từ cùng loại tăng thêm 1 giá trị:
Ví dụ số ctừ hiện là PC123/04 thì nhập phiếu chi sau là PC124/04.Nhưng nếu cuối là ký tự thì tăng theo ký tự ví dụ: PC123A/04 thì tăng là PC123B/04
Có thể dùng công thức hoặc VBA cũng được. Cám ơn nhiều.
 
Các anh chị giúp tôi khi cập nhật thì số chứng từ cùng loại tăng thêm 1 giá trị:
Ví dụ số ctừ hiện là PC123/04 thì nhập phiếu chi sau là PC124/04.Nhưng nếu cuối là ký tự thì tăng theo ký tự ví dụ: PC123A/04 thì tăng là PC123B/04
Có thể dùng công thức hoặc VBA cũng được. Cám ơn nhiều.

Làm 1 UDF để tăng số chứng từ lên (xác định số max) không khó, cái quan trọng là phải đưa ra VD cụ thể thì mới làm được vì bản thân mỗi người có 1 cách đặt chúng từ riêng.

Vì vậy nên đưa ra VD cụ thể bạn ạ.

Thân!
 
Làm 1 UDF để tăng số chứng từ lên (xác định số max) không khó, cái quan trọng là phải đưa ra VD cụ thể thì mới làm được vì bản thân mỗi người có 1 cách đặt chúng từ riêng.

Vì vậy nên đưa ra VD cụ thể bạn ạ.

Thân!
Mình gửi file chép 1 phần dữ liệu vì toàn file dung lương quá lớn. Nhờ các bạn giải quyết giúp.(Lưu ý: 1 chứng từ có thể có nhiều dòng định khoản)
Cám ơn các bạn.
 

File đính kèm

  • KETOAN07.rar
    20.2 KB · Đọc: 126
Lần chỉnh sửa cuối:
Mình gửi file chép 1 phần dữ liệu vì toàn file dung lương quá lớn. Nhờ các bạn giải quyết giúp.(Lưu ý: 1 chứng từ có thể có nhiều dòng định khoản)
Cám ơn các bạn.
Bạn thử tài mình hay sao, làm sao biết cái nào là PT hay PN.
Đề xuất 1 PA dẽ hiểu.
Thêm 1 cột LoaiCT: PT, PC, PN, PX
Và 1 cột số TT CT, dùng hàm sumproduct((month(ngayCT)=....)*(LoaiCT=...))+1
=> SoCT=LoaiCT&SoTT&month()
Hình như tạo số CT max, Mr Okebab và SoiBien có HD tôi trên GPE rồi (có cả UDF và CT)
 
Ấy chết!!! Mình sao dám thử tài các bạn. ThuNghi không để ý tiếp đầu ngữ của số chứng từ rồi. Chính nó là loại chứng từ bạn ạ. Thêm cột loại chứng từ cũng được, nó thoáng hơn cho công thức. Mình sẽ tìm lại các bài viết của bạn để tham khảo.
Rất cám ơn nha.
 
Bạn xem thử file sau, còn nhiều điền cần làm lắm.
 

File đính kèm

  • KETOAN07.rar
    36.6 KB · Đọc: 147
Còn file này làm sao anh ThuNghi ơi, chỉ em với, lúc trước em nhập tay không à.
 

File đính kèm

  • automatic.xls
    19 KB · Đọc: 77

File đính kèm

  • danh so thu chi.xls
    23 KB · Đọc: 147
Lần chỉnh sửa cuối:
Cám ơn Danh nhé, ví dụ mẫu thôi, có thể mở rộng trong trường hợp tổng quát như có phiếu nhập kho, phiếu xuất kho?
Nói chung bây giờ sử dụng phần mềm rồi, hỏi để học công thức và tư duy là chủ yếu.
 
Lần chỉnh sửa cuối:
Cám ơn Danh nhé, ví dụ mẫu thôi, có thể mở rộng trong trường hợp tổng quát như có phiếu nhập kho, phiếu xuất kho?
Nói chung bây giờ sử dụng phần mềm rồi, hỏi để học công thức và tư duy là chủ yếu.

Em chỉ làm như VD của anh thôi, còn tổng quát thì phải làm lại. Anh đưa dữ liệu nhiều nhiều lên đi, chứ ngồi gõ VD vào thì làm biếng quá anh ơi.
 
Ví dụ mẫu thôi, có thể mở rộng trong trường hợp tổng quát như có phiếu nhập kho, phiếu xuất kho?
Cái này chắc phải dùng công {} rồi, Trí nên có 1 cột số hóa đơn. Và hay nhất có thêm cột LoaiCT thì hay nhất.
Em xem và triển khai nhé.
 

File đính kèm

  • automatic.xls
    33 KB · Đọc: 62
Thêm 1 file nữa theo các loại LoaiCT
 

File đính kèm

  • MaxSoCT.xls
    32 KB · Đọc: 87
ThuNghi ơi! Thật nể sự trăn trở, nhiệt tình của bạn.
Có điều các bạn hơi lệch hướng 1 chút. Các bạn tập trung chuyển đổi số chứng từ gốc đã nhập thành số theo kết cấu số chứng từ. Theo tôi số ctừ KT này nó không hoàn toàn phụ thuộc vào chủ ý mình nhập vào mà nó được tự động xác định theo:
-Loại chứng từ :Căn cứ vào định khoản. Nếu nợ TK111 thì là phiếu thu, nợ TK112 là báo có. Có TK152 là phiếu xuất, Có TK 511 là HD....
-Số chứng từ: Nó phụ thuộc vào thời gian nó PS so với các chứng từ cùng loại và số chứng từ gốc tham chiếu (Tôi phân vân vậy những chứng không căn cứ chứng từ kèm theo thì sao, có nên cho nó 1 mã số tự động = rand()). Nếu chứng từ gốc như nhau thì coi như các định khoản khác nhau của 1 số Ctừ và số bằng nhau (Không tăng), nếu khác nhau thì tăng thêm vào phần số.
Như vậy, khi cập nhật DATA thì chỉ cần nhập ngày, số ctừ tham chiếu, nội dung. Chương trình sẽ tự động sinh ra 1 hệ thống số chứng từ đúng chủng loại, đúng trình tự thời gian, có trật tự. Điều quan trọng là ta không phải để tâm chọn và đánh số.
 
ThuNghi ơi! Thật nể sự trăn trở, nhiệt tình của bạn.
Có điều các bạn hơi lệch hướng 1 chút. Các bạn tập trung chuyển đổi số chứng từ gốc đã nhập thành số theo kết cấu số chứng từ. Theo tôi số ctừ KT này nó không hoàn toàn phụ thuộc vào chủ ý mình nhập vào mà nó được tự động xác định theo:
-Loại chứng từ :Căn cứ vào định khoản. Nếu nợ TK111 thì là phiếu thu, nợ TK112 là báo có. Có TK152 là phiếu xuất, Có TK 511 là HD....
-Số chứng từ: Nó phụ thuộc vào thời gian nó PS so với các chứng từ cùng loại và số chứng từ gốc tham chiếu (Tôi phân vân vậy những chứng không căn cứ chứng từ kèm theo thì sao, có nên cho nó 1 mã số tự động = rand()). Nếu chứng từ gốc như nhau thì coi như các định khoản khác nhau của 1 số Ctừ và số bằng nhau (Không tăng), nếu khác nhau thì tăng thêm vào phần số.
Như vậy, khi cập nhật DATA thì chỉ cần nhập ngày, số ctừ tham chiếu, nội dung. Chương trình sẽ tự động sinh ra 1 hệ thống số chứng từ đúng chủng loại, đúng trình tự thời gian, có trật tự. Điều quan trọng là ta không phải để tâm chọn và đánh số.
Chưa hiểu lắm, ý bạn là thế nào.
Nhập cái gì, nếu chỉ cần nhập ngày, số ctừ tham chiếu, nội dung thì căn cứ nào để biết loaiCT.
Bạn có thể cụ thể vài dòng, bạn sẽ nhập cái gì và YC thế nào. Chớ theo file cũ của bạn thì không thể.
 
ThuNghi ơi! Thật nể sự trăn trở, nhiệt tình của bạn.
Có điều các bạn hơi lệch hướng 1 chút. Các bạn tập trung chuyển đổi số chứng từ gốc đã nhập thành số theo kết cấu số chứng từ. Theo tôi số ctừ KT này nó không hoàn toàn phụ thuộc vào chủ ý mình nhập vào mà nó được tự động xác định theo:
-Loại chứng từ :Căn cứ vào định khoản. Nếu nợ TK111 thì là phiếu thu, nợ TK112 là báo có. Có TK152 là phiếu xuất, Có TK 511 là HD....
-Số chứng từ: Nó phụ thuộc vào thời gian nó PS so với các chứng từ cùng loại và số chứng từ gốc tham chiếu (Tôi phân vân vậy những chứng không căn cứ chứng từ kèm theo thì sao, có nên cho nó 1 mã số tự động = rand()). Nếu chứng từ gốc như nhau thì coi như các định khoản khác nhau của 1 số Ctừ và số bằng nhau (Không tăng), nếu khác nhau thì tăng thêm vào phần số.
Như vậy, khi cập nhật DATA thì chỉ cần nhập ngày, số ctừ tham chiếu, nội dung. Chương trình sẽ tự động sinh ra 1 hệ thống số chứng từ đúng chủng loại, đúng trình tự thời gian, có trật tự. Điều quan trọng là ta không phải để tâm chọn và đánh số.

Đừng cầu toàn như vậy bạn ạ!!!

Khôg nên dựa vào định khoản mà ---->>> Loại phiếu, tối kỵ đấy
mà bạn nên từ Loại phiếu ---->> Định khoản.

Nợ 111 ---> Phiếu thu
Có 122--->báo Nợ
Vậy nếu rút tiền mặt từ NH về thì sao nhỉ ???
..............


Còn về phần hàm để làm tăng chúng từ thì đơn giản thôi, tuy nhiên vẫn nên có 1 cột riêng là : LoaiChungTu.
Trong tất cả các phần mềm đều thế cả.
Vì vậy mong bạn tham khảo vào học hỏi. (Cách của bác ThuNghi cũng rất hay đó)

Thân!
 
Kẻ ngoại đạo cố xen zô chút đỉnh, mong được chỉ trích

Ứng với file dữ liệu có ở bài đầu;
Chì cần nhập 2 từ đầu mã loại chứng từ vô cột 'C'


PHP:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
 On Error Resume Next
 Const cCTu As String = "BCHDPCPNPTPXPKT"
                        '1 3 5 7 9 1 3  '
 Dim LoaiCT As String:                             Dim Rng As Range
 Dim VTri As Byte:                                 Dim jJ As Integer
 
 If Not Intersect(Target, Columns("C:C")) Is Nothing _
   And InStr(cCTu, UCase$(Target)) Mod 2 = 1 Then
   LoaiCT = UCase$(Target):                        VTri = 3
   If InStr(cCTu, LoaiCT) = 13 Then
      LoaiCT = "PKT":                              VTri = 4
   End If
   For jJ = Target.Row - 1 To 2 Step -1
      With Cells(jJ, 3)
         If Left(.Value, 2) = LoaiCT Or Left(.Value, 3) = LoaiCT Then
            If CInt(Right(.Value, 2)) = Month(Date) Then
               Target = LoaiCT & _
                  Right("0" & CStr(CInt(Mid(.Value, VTri, Len(.Value) - VTri + 1 - 3)) + 1), 2) _
                  & Right(.Value, 3)
            ElseIf CInt(Right(.Value, 2)) <> Month(Date) Then
               Target.Value = LoaiCT & "01/" & Right("0" & Month(Date), 2)
            Else
               MsgBox "Sai tai: " & .Address:      Exit Sub
            End If
            Exit For
         End If
        End With
    Next jJ
 End If
End Sub
 
Lần chỉnh sửa cuối:
Xin lỗi ThuNghi, tệp mẫu mình xóa quá mất cả định khoản và tiền thì còn gì là kế toán.
Mình gửi lại các bạn sử lý giúp.
 

File đính kèm

  • KETOAN07NEW.xls
    50 KB · Đọc: 52
Web KT
Back
Top Bottom