Xin hỏi về code: Liệt kê chứng từ thanh toán (1 người xem)

  • Thread starter Thread starter tam8678
  • Ngày gửi Ngày gửi
Liên hệ QC

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

tam8678

Đời Xá Chi
Tham gia
30/4/09
Bài viết
417
Được thích
301
Nghề nghiệp
Kế toán
Rất mong các anh em xem và giúp dùm code để liệt kê chứng từ thanh toán. Mong muốn được ghi rõ trong file đính kèm. Cám ơn
 

File đính kèm

Rất mong các anh em xem và giúp dùm code để liệt kê chứng từ thanh toán. Mong muốn được ghi rõ trong file đính kèm. Cám ơn
Anh cho em hỏi vài cái:
Dữ liệu luôn được sắp xếp theo từng khách hàng như file anh gửi hay có thể lộn xộn?
Một khách khàng có thể có nhiều hóa đơn không? Tiền thanh toán cũng được sắp sếp theo từng hóa đơn hay lộn xộn?
Nếu phát sinh thêm thì anh gửi thêm một file dữ liệu tổng quát hơn thử nhé :D
 
Upvote 0
Anh cho em hỏi vài cái:
Dữ liệu luôn được sắp xếp theo từng khách hàng như file anh gửi hay có thể lộn xộn?
Một khách khàng có thể có nhiều hóa đơn không? Tiền thanh toán cũng được sắp sếp theo từng hóa đơn hay lộn xộn?
Nếu phát sinh thêm thì anh gửi thêm một file dữ liệu tổng quát hơn thử nhé :D
---
Dữ liệu đã được xử lý trước nên luôn được sắp xếp theo từng khách hàng.
Một khách hàng có nhiều hóa đơn. Tiền thanh toán cũng được sắp xếp theo từng hóa đơn.
File đính kèm bài trên do anh đã xử lý đến bước đó rồi. Cám ơn em đã xem.
 
Upvote 0
---
Dữ liệu đã được xử lý trước nên luôn được sắp xếp theo từng khách hàng.
Một khách hàng có nhiều hóa đơn. Tiền thanh toán cũng được sắp xếp theo từng hóa đơn.
File đính kèm bài trên do anh đã xử lý đến bước đó rồi. Cám ơn em đã xem.
Anh chạy code này thử nha.
PHP:
Sub LietKe()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim MyRng As Range, MyCll As Range, FindCll As Range, FirstAdd As String, OldData, NewData(), i As Long
Set MyRng = Range([C1], [A65536].End(xlUp).Offset(1, 2))
MyRng.Offset(, 4).Resize(, 250).ClearContents
Set FindCll = [C1]
Set MyCll = MyRng.Find("", FindCll, , xlWhole, , xlNext)
Set FindCll = MyCll
FirstAdd = FindCll.Address
Do Until MyRng.FindNext(FindCll).Address = FirstAdd
    Set MyCll = MyRng.FindNext(FindCll)
    If MyCll.Row - 1 > FindCll Then
        OldData = Range(FindCll.Offset(1), MyCll.Offset(-1, 1)).Value
        ReDim NewData(1 To 1, 1 To UBound(OldData, 1) * 2)
        For i = 1 To UBound(OldData, 1)
            NewData(1, (i - 1) * 2 + 1) = OldData(i, 1)
            NewData(1, i * 2) = OldData(i, 2)
        Next
        FindCll.Offset(, 4).Resize(, UBound(OldData, 1) * 2).Value = NewData
    End If
    Set FindCll = MyCll
Loop
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom