Đánh số thứ thự phiếu thu chi (3 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

  • Tôi tuân thủ nội quy khi đăng bài

    HangktGTN

    Thành viên mới
    Tham gia
    13/8/25
    Bài viết
    2
    Được thích
    0
    Chào cả nhà. Mong cả nhà chỉ giúp em cách đánh số thứ tự phiếu thu, chi, chứng từ ngân hàng theo thnags khi mình dùng filter ạ. Em cảm ơn!
     
    Chào cả nhà. Mong cả nhà chỉ giúp em cách đánh số thứ tự phiếu thu, chi, chứng từ ngân hàng theo thnags khi mình dùng filter ạ. Em cảm ơn!
    Đây bạn ạ. Mình muống đánh số thứ thự các phiếu thu, chi theo tháng. vì khi làm mình nhập 1 loaajt, giờ filter lại để lọc nhưng lại k kéo tăng số thứ tự được ạ
     

    File đính kèm

    ABC
    1NgàyPhiếuSố
    21/1/2025PCPC01001
    31/1/2025PTPT01001
    41/2/2025PCPC01002
    51/2/2025PTPT01002
    62/9/2025PKTPKT02001
    73/1/2025PKTPKT03001
    83/5/2025PKTPKT03002
    93/20/2025PKTPKT03003
    103/31/2025PKTPKT03004
    Nếu ý tưởng của bạn là ra kết quả như thế này thì có thể thêm cột phụ loại phiếu và áp dụng công thức cho cả cột số phiếu: =B2&TEXT(MONTH(A2),"00")&TEXT(COUNTIFS(B$1:B2,B2,A$1:A2,">="&DATE(YEAR(A2),MONTH(A2),1),A$1:A2,"<"&EOMONTH(A2,0)+1),"000")
     
    Mình có ý tưởng đánh phiếu thu chi tăng theo ngày của từng loại phiếu:


    1755121866884.png
    [Cột mã phiếu là cột mình mong muốn]
    Mong muốn này của mình được Copilot thỏa đáng như macro dưới đây:

    PHP:
    Sub TaoMaPhieu()
        Dim lastRow As Long,   i As Long, j As Long
        Dim ngay As Date
        Dim namMa As String, thangMa As String, ngayMa As String, loaiMa As String
        Dim soThuTu As String
        Dim countSame As Integer
    
        lastRow = Cells(Rows.Count, "A").End(xlUp).Row
    
        For i = 2 To lastRow
            If IsDate(Cells(i, 1).Value) Then
                ngay = Cells(i, 1).Value           
                ' Mã nam  '
                Select Case Year(ngay)
                    Case 2025: namMa = "E"
                    Case 2026: namMa = "F"
                    Case Else: namMa = "?"
                End Select           
                ' Mã tháng   '
                Select Case Month(ngay)
                    Case 10: thangMa = "A"
                    Case 11: thangMa = "B"
                    Case Else: thangMa = CStr(Month(ngay))
                End Select           
                ' Mã ngày   '
                Select Case Day(ngay)
                    Case 19: ngayMa = "J"
                    Case Else: ngayMa = CStr(Day(ngay))
                End Select           
                ' Mã lo?i phi?u   '
                Select Case Cells(i, 2).Value
                    Case "PC_": loaiMa = "C"
                    Case "PT_": loaiMa = "T"
                    Case "PCK": loaiMa = "CK"
                    Case Else: loaiMa = "?"
                End Select           
                ' Ð?m s? dòng tru?c dócó cùng ngày và lo?i phi?u   '
                countSame = 0
                For j = 2 To i
                    If Cells(j, 1).Value = Cells(i, 1).Value And Cells(j, 2).Value = Cells(i, 2).Value Then
                        countSame = countSame + 1
                    End If
                Next j           
                ' S? th? t? d?ng 3 ch? s?   '
                soThuTu = Format(countSame, "000"
                ' Ghi mã phi?u vào c?t C   '
                Cells(i, 3).Value = namMa & thangMa & ngayMa & loaiMa & "_" & soThuTu
            End If
        Next i
        MsgBox "Ðã t?o mã phi?u xong!", vbInformation
    End Sub
     

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

    Back
    Top Bottom