Sổ nhật ký chung (VBA)

Liên hệ QC

newlove

Thành viên mới
Tham gia
27/12/19
Bài viết
28
Được thích
0
Xin phép Thầy / anh chị
Em muốn hỏi về code để làm sổ nhật ký chung cho file đính kèm
Dữ liệu từ sheet data_tổng hợp sang sheet nhật ký chung
Nhờ các thầy / anh chị sửa giúp code hoặc cho em xin code cho file đính kèm.
Em đang tự học vba ạ, gặp khó khăn nhờ thầy / anh chị giúp
Hoặc cho em xin 1 file nó đó để em tìm hiểu ạ
Hoặc 1 link hướng dẫn
Em tìm hoài ko có ạ

Em cám ơn.
 

File đính kèm

  • Ví dụ.xlsm
    360.9 KB · Đọc: 31
Xin phép Thầy / anh chị
Em muốn hỏi về code để làm sổ nhật ký chung cho file đính kèm
Dữ liệu từ sheet data_tổng hợp sang sheet nhật ký chung
Nhờ các thầy / anh chị sửa giúp code hoặc cho em xin code cho file đính kèm.
Em đang tự học vba ạ, gặp khó khăn nhờ thầy / anh chị giúp
Hoặc cho em xin 1 file nó đó để em tìm hiểu ạ
Hoặc 1 link hướng dẫn
Em tìm hoài ko có ạ

Em cám ơn.
Đã có ai code cho bạn rồi đó còn mà
 
Upvote 0
Dear vana
Cái đó nó đang bị sai ạ
Có thể xem lại giúp em để chạy dữ liệu trên sheet nkc với ạ


Em cám ơn
 
Upvote 0
Kết quả bạn mong muốn là gì ?
 
Upvote 0
Dear vana
Em chỉ muốn lấy dữ liệu theo ngày tháng từ sheet data_tong sang sổ nkc thôi

Vui lòng giúp em ạ, e đang rất cần
 
Upvote 0
1 câu hỏi ngu ngơ: Số hiệu tài khoản nào là phải ghi vô cột 'Nợ' hay 'Có'?
 
Upvote 0
1 câu hỏi ngu ngơ: Số hiệu tài khoản nào là phải ghi vô cột 'Nợ' hay 'Có'?

Dạ sổ nhật ký chung chỉ lọc theo ngày tháng, đâu cần số hiệu tk ạ, giống như nhật ký bán hàng thôi ạ. Nó phức tạp lấy ra đối ứng tk, ps nợ có thôi ạ
 
Upvote 0
Vậy nghĩa là chỉ chép 4 trường này theo từng ngày thôi chứ gì?

Ngày ghiNgày CTSố HĐDiễn giải
 
Upvote 0
4 trường đó thì em đã chép đc rồi ạ, nhưng phức tạp cột thành tiền phát sinh bên nợ, bên có theo như sheet nkc ạ, và tài khoản đối ứng, như mẫu sheet nkc
Bài đã được tự động gộp:

Mong muốn lấy cột đối ứng, ps nợ, ps có. Trong code đính kèm file thì chạy khi có điều kiện ngày,mã tài khoản, mã đối tượng. Câu hỏi là Trong sheet nkc thì chỉ cần giữ lại điều kiện ngày, bỏ hết các điều kiện khác, mẫu báo cáo ta lấy đc là sheet nkc hoặc như hình ảnh đính kèm. Nếu dữ liệu data_tong sai mẫu, vui lòng cho em xin file để có thể chạy code lên được sổ nkc thôi ạ. Em cám ơn nhiều
 

File đính kèm

  • nkc.png
    nkc.png
    37.7 KB · Đọc: 29
Lần chỉnh sửa cuối:
Upvote 0
Vấn đề là với số hiệu tài khoản nào thì ghi số tiền vô cột 'Nợ' hay cột 'Có'
Bạn nên viết cho mọi người hiểu, chứ không phải viết những gì mình hiểu.
 
Upvote 0
Dear vana
Em chỉ muốn lấy dữ liệu theo ngày tháng từ sheet data_tong sang sổ nkc thôi

Vui lòng giúp em ạ, e đang rất cần
Mình không biết bạn muốn nhỉ nhưng thử sub này, mình sửa code trên của bạn
Mã:
Sub NhatKiChung_()

    Application.ScreenUpdating = False

    With Sheets("data_tong")
        .AutoFilterMode = False
        endR = .Cells(65000, 1).End(3).Row ' den dong thu 65k, cot thu 1
        arr = .Range("D16:N65000" & endR).Value ' vung tham chieu
    End With

    With Sheets("nkc")
        .Rows("14:1000").EntireRow.Hidden = False ' an tu dong
        .Range("A14:G1000").ClearContents '  xoa tu dong
        .[F11] = 0: .[G11] = 0
        fD = CLng(.[I3]):  eD = CLng(.[I5]) ' dieu kien ngay
    End With

    s = 0: SoDu = 0

    ReDim ArrKQ(1 To 1000, 1 To 7) ' vung chua ket qua

    For i = 1 To UBound(arr)

        If CLng(arr(i, cNg)) >= fD Then

            If CLng(arr(i, cNg)) <= eD Then  ' neu cot ngay thang o so nkc <= ngay thang so chi tiet sau do
                s = s + 1 ' ke tiep 1 dong

                For k = 1 To 4 ' tu cot ngay thang den cot dien giai
                    ArrKQ(s, k) = arr(i, k + 0) ' tinh tu cot dau tien tren so nkc, lay ra cot bao nhieu tai sheet chi tiet
                Next k

                ArrKQ(s, 5) = arr(i, cTkCo) ' so chi tiet tk doi ung tuong ung cot tk co so nkc
                ArrKQ(s, 6) = arr(i, cST) 'ST PS No ' so tiet ben co cua so chi tiet = so tien cua so nkc
                s = s + 1

                For k = 1 To 4 ' tu cot ngay thang den cot dien giai
                    ArrKQ(s, k) = arr(i, k + 0) ' tinh tu cot dau tien tren so nkc, lay ra cot bao nhieu tai sheet chi tiet
                Next k

                ArrKQ(s, 5) = arr(i, cTkNo)
                ArrKQ(s, 7) = arr(i, cST) 'STPS Co
            End If

        End If

    Next i

    If s = 0 Then

        With Sheets("nkc") ' an dong khi khong co ket qua
            .Rows(s + 14 & ":1000").Hidden = True ' an dong khi khong co ket qua
            End With ' an dong khi khong co ket qua
            MsgBox "Không có"
            GoTo Exit_Sub
        End If

        With Sheets("nkc")
            .Rows(s + 14 & ":1000").EntireRow.Hidden = True

            If SoDu > 0 Then
                .[F11] = SoDu: .[G11] = 0
            Else
                .[G11] = -SoDu: .[F11] = 0
            End If

            '.Range("A11:G200").ClearContents
            .[A14].Resize(s, 7) = ArrKQ
        End With

Exit_Sub:

        Application.ScreenUpdating = True

End Sub
 

File đính kèm

  • Ví dụ_1.xlsm
    349.6 KB · Đọc: 36
Upvote 0
Em mở xem chưa biết kết quả ra đúng hay sai.
Nhưng mà thật tuyệt vời "Ms.Vana"
Đúng theo ý mình rồi ạ, trong cái code đó mình ko biết sửa ntn.

Thật ko biết cám ơn như thế nào.
Chúc "Ms.Vana" nhiều niềm vui, hp trong cuộc sống.
 
Upvote 0
Bạn đừng nên tạo sổ như thế, sổ nào ra sổ đó. Hãy thiết lập nhật ký phát sinh cho rõ ràng hơn. Làm kế toán là phải chi tiết, đừng để rối cục như thế. Hãy làm cái mẫu sổ kế toán theo đúng như quy định, đừng có kiểu người này thì hỏi mấm, người kia thì hỏi muối. Cuối cùng nhiều người hỏi mà chả ra ngô ra khoai gì cả.
 
Upvote 0
Đúng vậy ketoan100
Mục đích của mình học code vba, đọc hiểu nó ra làm sao.
Cơ bản nó cần gì để ra kết quả như vầy.
Còn riêng về kế toán hay mẫu biểu (em hiểu việc đó).

Cá nhân em nghĩ:
Cũng ko nên phụ thuộc chính vào phần mềm, khi làm trên excel, ta nhìn công thức (kt nội bộ thôi ạ)
Mình vừa học đc cái công thức vừa tìm ra được tài khoản nó đi đâu và chạy đến đâu, để mình hiểu bản chất của nó.
Khi điều chỉnh số liệu 1 con số ( mình có thể hình dung số này nó sẽ chay đi đâu và về đâu.
Phần mềm là công cụ hỗ trợ, cơ bản mình hiểu bản chất, là phải ứng biến ko nên dập khuôn.


Cám ơn ý kiến của ketoan100
 
Upvote 0
Mình không biết bạn muốn nhỉ nhưng thử sub này, mình sửa code trên của bạn
Mã:
Sub NhatKiChung_()

    Application.ScreenUpdating = False

    With Sheets("data_tong")
        .AutoFilterMode = False
        endR = .Cells(65000, 1).End(3).Row ' den dong thu 65k, cot thu 1
        arr = .Range("D16:N65000" & endR).Value ' vung tham chieu
    End With

    With Sheets("nkc")
        .Rows("14:1000").EntireRow.Hidden = False ' an tu dong
        .Range("A14:G1000").ClearContents '  xoa tu dong
        .[F11] = 0: .[G11] = 0
        fD = CLng(.[I3]):  eD = CLng(.[I5]) ' dieu kien ngay
    End With

    s = 0: SoDu = 0

    ReDim ArrKQ(1 To 1000, 1 To 7) ' vung chua ket qua

    For i = 1 To UBound(arr)

        If CLng(arr(i, cNg)) >= fD Then

            If CLng(arr(i, cNg)) <= eD Then  ' neu cot ngay thang o so nkc <= ngay thang so chi tiet sau do
                s = s + 1 ' ke tiep 1 dong

                For k = 1 To 4 ' tu cot ngay thang den cot dien giai
                    ArrKQ(s, k) = arr(i, k + 0) ' tinh tu cot dau tien tren so nkc, lay ra cot bao nhieu tai sheet chi tiet
                Next k

                ArrKQ(s, 5) = arr(i, cTkCo) ' so chi tiet tk doi ung tuong ung cot tk co so nkc
                ArrKQ(s, 6) = arr(i, cST) 'ST PS No ' so tiet ben co cua so chi tiet = so tien cua so nkc
                s = s + 1

                For k = 1 To 4 ' tu cot ngay thang den cot dien giai
                    ArrKQ(s, k) = arr(i, k + 0) ' tinh tu cot dau tien tren so nkc, lay ra cot bao nhieu tai sheet chi tiet
                Next k

                ArrKQ(s, 5) = arr(i, cTkNo)
                ArrKQ(s, 7) = arr(i, cST) 'STPS Co
            End If

        End If

    Next i

    If s = 0 Then

        With Sheets("nkc") ' an dong khi khong co ket qua
            .Rows(s + 14 & ":1000").Hidden = True ' an dong khi khong co ket qua
            End With ' an dong khi khong co ket qua
            MsgBox "Không có"
            GoTo Exit_Sub
        End If

        With Sheets("nkc")
            .Rows(s + 14 & ":1000").EntireRow.Hidden = True

            If SoDu > 0 Then
                .[F11] = SoDu: .[G11] = 0
            Else
                .[G11] = -SoDu: .[F11] = 0
            End If

            '.Range("A11:G200").ClearContents
            .[A14].Resize(s, 7) = ArrKQ
        End With

Exit_Sub:

        Application.ScreenUpdating = True

End Sub
Trời ạ, dữ liệu như một đống rác mà viết code được :eek:
Đầu tiên phải kiểm tra dữ liệu phải đúng chuẩn mực kế toán, căn cứ các chuẩn mực nầy đưa ra giải thuật xử lý
 
Upvote 0
Trời ạ, dữ liệu như một đống rác mà viết code được :eek:
Đầu tiên phải kiểm tra dữ liệu phải đúng chuẩn mực kế toán, căn cứ các chuẩn mực nầy đưa ra giải thuật xử lý
Dear a Hiếu
Em làm về kế toán,nên có hiểu về chuẩn mực, nhưng kiến thức vba lại eo hẹp.
Trong trường hợp này theo ý anh có thể xử lý như thế nào.
Có thể cho chúng em học hỏi với ạ
E xin ví dụ để học hỏi với ạ
Em cám ơn
 
Upvote 0
Dear a Hiếu
Em làm về kế toán,nên có hiểu về chuẩn mực, nhưng kiến thức vba lại eo hẹp.
Trong trường hợp này theo ý anh có thể xử lý như thế nào.
Có thể cho chúng em học hỏi với ạ
E xin ví dụ để học hỏi với ạ
Em cám ơn
Lấn đầu thấy nhân viên kế toán ghi sổ không căn cứ chứng từ và ngày tháng lung tung
 
Upvote 0
Dear anh Hiếu
Em đang học hỏi về vba để lên sổ, nó hoạt động ra sao, nó như thế nào, nta học làm được, mình học làm đc ko.
Đó là câu hỏi của em đặt ra cho bản thân, với tính thần học hỏi;
Kiến thức VBA của em thuộc sơ sài và tự học.
Có code rồi em nghiên cứu sao cho nó phù hợp.
Mà đây chỉ là cái mẫu thôi ạ, dựa vào cái code cho sẵn để em tự học thôi, mà em cũng nói ngay từ đầu của topic ạ.
Còn sau khi em hiểu code nó chạy như thế nào em sẽ chỉnh sửa mẫu theo chuẩn mực chứ :d
Còn trong lĩnh vực nghề nghiệp, mong anh ko nên đánh giá nhanh trong trường hợp này ạ.
Anh có biết thì anh chỉ dẫn cho những người không biết như em chẳng hạn.
Nếu em sai, nhưng cũng không nên dấu dốt anh ạ hihi

Cám ơn anh đưa ra bình luận đắt giá.
 
Upvote 0
Web KT

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

Back
Top Bottom