Sổ nhật ký chung (VBA) (1 người xem)

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

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

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

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: 33
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

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
. . . . . .
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 ạ. . . . . .
/(iểu này giống như sinh con rồi mới sinh cha;
Từ thiết kế (trang tính) người ta mới 'Code' được; Ai lại ngược đời làm vậy?
Nếu là muốn tranh thủ kiến thức người khác cho mình thì cách này không đạt mục đích, nếu đã phát hiện ra ý đồ của bạn.
Tạm biệt!
 
Upvote 0
Dear anh chị
Kiến thức của người sáng tạo ra, Anh chị là người truyền đạt lại, Em là người học.
Em có học được hay không thì cũng do người truyền đạt.
Trong câu hỏi của em, em nghĩ không nên lấy chuyên môn ra để đánh giá mà thôi (đó là xúc phạm người đi xin học)
Để làm được kết quả hay không nhờ anh chị chỉ bảo em đã nói rõ topic mà.

""Nếu là muốn tranh thủ kiến thức người khác cho mình thì cách này không đạt mục đích, nếu đã phát hiện ra ý đồ của bạn. ""
""Nếu bạn nói như trên thì hãy học những cái cơ bản đi ""

Xin cân nhắc lại lời nói này.
Chứ nói như anh chị trên đây: 10tr mua phần mềm cho nhanh (thời gian nghĩ cái khác kiếm tiền) . xin lỗi em đã nói vậy và cũng out luôn GPE
 
Upvote 0
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á.
Thu thập dữ liệu ban đầu, xử lý tạo sổ và báo cáo kế toán đầu ra phải dựa trên nền tảng các chuẩn mực và qui định kết toán, ngay từ giai đoạn đầu ghi nhận dữ liệu bạn đã bỏ qua các qui định, mối liên kết dữ liệu không thể hiện đầy đủ nên không thể viết code tạo kết quả chính xác được
 
Upvote 0
Dear a Hiếu
Em đọc cmt của a nói như vậy thì em hiểu ạ.
Bài của em là, Em đã tạo form tự động hạch toán từ các bút toán phát sinh, ra các sheet nhỏ, và từ sheet nhỏ ra sheet tổng em làm đc rồi, với dữ liệu thô ạ.
Cái dữ liệu thô của e cũng chưa chắc đầy đủ thông tin cần thiết, e đăng lên để nếu sai cấu trúc chạy code e sẽ sửa thôi ạ.
Còn xin các a/c nói chuyện mình tôn trọng nhau. Em ko phải sv mới ra trường hihi
 
Upvote 0
Còn xin các a/c nói chuyện mình tôn trọng nhau. Em ko phải sv mới ra trường hihi
Ở bài #1 tui thấy hơi lạ vì cách làm ngược như bác SA_DQ đã nói như trên, vì bình thường người ta đưa từ Nhật ký chung về Data của bạn. Còn ở đây tôi không thấy ai nói gì để không tôn trọng bạn
Mà thôi bạn không thích người góp ý thì tôi ngưng ở đây nhé và thấy bạn có vẻ tự tin trong công việc không thích người khác góp ý cho mình./.
 
Upvote 0
Lại 1 người đi xe matza đấy mà, thua!
 
Upvote 0
Dear a Hiếu
Em đọc cmt của a nói như vậy thì em hiểu ạ.
Bài của em là, Em đã tạo form tự động hạch toán từ các bút toán phát sinh, ra các sheet nhỏ, và từ sheet nhỏ ra sheet tổng em làm đc rồi, với dữ liệu thô ạ.
Cái dữ liệu thô của e cũng chưa chắc đầy đủ thông tin cần thiết, e đăng lên để nếu sai cấu trúc chạy code e sẽ sửa thôi ạ.
Còn xin các a/c nói chuyện mình tôn trọng nhau. Em ko phải sv mới ra trường hihi
Túm lại không có số chứng từ, code kiểu gì cũng có thể sai.
 
Upvote 0
1601573650873.png

Cái bôi vàng là cái gì vậy bạn, mình muốn học hỏi quá
 
Upvote 0
Trời ơi, Thằng bé chỉ nhờ hướng dẫn viết code chút xíu thôi mà mọi người đè thằng bé ra la quá trời. tội nghiệp !!!!
Lần sao còn dám nhờ nữa không cưng.kkkk
 
Upvote 0
Trời ơi, Thằng bé chỉ nhờ hướng dẫn viết code chút xíu thôi mà mọi người đè thằng bé ra la quá trời. tội nghiệp !!!!
Lần sao còn dám nhờ nữa không cưng.kkkk

Nguyên tắc để phân biệt là sử dụng SỐ CHỨNG TỪ, vì trong kế toán, kể cả nhập trên phần mềm, thì số chứng từ không được giống nhau.
 
Upvote 0
Nguyên tắc để phân biệt là sử dụng SỐ CHỨNG TỪ, vì trong kế toán, kể cả nhập trên phần mềm, thì số chứng từ không được giống nhau.
Thằng bé nhờ sau thì viết vậy đi, nếu viết được thì viết còn không thì bỏ qua. Thằng bé sẽ tự xoay sở. Mỗi DN sẽ tự xây cho mình 1 bộ máy kế toán riêng, không DN nào giống DN nào nên tùy thằng bé quyết định số chứng từ của nó.
 
Upvote 0
Thây không khả thi và có thể dẫn tới sai sót,tránh dẫn tới kết quả sai nên mọi người góp ý sửa thôi bạn la gì đâu
 
Upvote 0
Thằng bé nhờ sau thì viết vậy đi, nếu viết được thì viết còn không thì bỏ qua. Thằng bé sẽ tự xoay sở. Mỗi DN sẽ tự xây cho mình 1 bộ máy kế toán riêng, không DN nào giống DN nào nên tùy thằng bé quyết định số chứng từ của nó.

Không có nguyên tắc thì viết kiểu gì bạn? Bạn làm kế toán mà bảo không doanh nghiệp nào giống doanh nghiệp nào?
Không cần biết quy định đánh số thế nào ở mỗi doanh nghiệp nhưng đó vẫn là cái để dựa vào để viết hoặc để để nhập bạn nhé.
 
Upvote 0
Không có nguyên tắc thì viết kiểu gì bạn? Bạn làm kế toán mà bảo không doanh nghiệp nào giống doanh nghiệp nào?
Không cần biết quy định đánh số thế nào ở mỗi doanh nghiệp nhưng đó vẫn là cái để dựa vào để viết hoặc để để nhập bạn nhé.
Thì người ta vẫn viết code được cho bạn ấy đó, miễn chạy theo đúng ý của bạn ấy là được rồi, còn các phần khác đừng nên bàn tới. không làm được thì bỏ qua.
Bài đã được tự động gộp:

Không có nguyên tắc thì viết kiểu gì bạn? Bạn làm kế toán mà bảo không doanh nghiệp nào giống doanh nghiệp nào?
Không cần biết quy định đánh số thế nào ở mỗi doanh nghiệp nhưng đó vẫn là cái để dựa vào để viết hoặc để để nhập bạn nhé.
Còn mình thỉ chỉ muốn bạn ấy tạo 1 cái data tương đối đầy đủ để cho những người sau tìm kiếm mà học theo, không cần phải hỏi và viết code khác nữa, Chứ không muốn bạn ấy phải thật hoàn hảo rồi mới đưa lên đây.
 
Upvote 0

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

Back
Top Bottom