Giúp cách tự động ktra số liệu tồn cuối ngày hôm trước với số tồn đầu ngày hôm sau (1 người xem)

Liên hệ QC

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

tuanda85

Thành viên mới
Tham gia
30/8/11
Bài viết
29
Được thích
2
Hi all,
Mình có vấn đề thế này cần giải quyết, hiện tại mình phải làm báo cáo tổng hợp theo ngày số liệu của từng khách hàng( lên đến 2000 dòng), thực tế khi làm thì số liệu tồn cuối ngày trc(bôi vàng) phải bằng số tồn đầu ngày hôm sau(màu đỏ) nhưng nhiều khi người làm báo cáo gửi về thì họ làm sai, hai số đó không khớp nhau, việc dò bằng mắt trong 2000 dòng là rất khó khăn, có bạn nào biết cách dùng vba để ktra khi có sự sai lệch giữa số tồn đầu và tồn cuối trong file excel mình đính kèm ko
Trân trọng cảm ơn sự giúp đỡ của các bạn.
 

File đính kèm

bạn thử đoạn code nay, mỗi lần bạn save hoặc exit no se tự động chạy macro

2 đoạn code này chép vào workbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)




With ThisWorkbook
If Not .Saved Then

yes = False
no = False
Cancel = True
Run ("DoTim")
If .Saved Then
ThisWorkbook.Close
End If
End If
End With

End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)



Run ("DoTim")


End Sub

'**************doan code nay chep vao module
Sub DoTim()


Application.ScreenUpdating = False
LastRow = Range("B" & Rows.Count).End(xlUp).Row 'tim dong du lieu cuoi cung


LastCol = Cells(1, 256).End(xlToLeft).Column - 1
For j = 3 To LastCol
For i = 5 To LastRow
Cells(i, j).Select

If Cells(i, j).Value <> Cells(i, j).Offset(-3, 1).Value Then

wbQ = MsgBox("Co gia tri khong khop, ban muon sua ko?", vbYesNo, "")
Application.ScreenUpdating = True
Cells(i, j).Select
If wbQ = vbYes Then
Exit Sub
Else

ThisWorkbook.Save

End If
End If
i = i + 3
Application.ScreenUpdating = False
Next i
Application.ScreenUpdating = False
Next j
Application.ScreenUpdating = True

End Sub
 
Upvote 0
sory, thiếu một chút

cuối sub DoTim ban thêm dong lenh
ThisWorkbook.Save
 
Upvote 0
ok, thanks bạn, mình chạy thủ thấy đc rồi, cám ơn bạn nhiều nhé
 
Upvote 0
sory, thiếu một chút

cuối sub DoTim ban thêm dong lenh
ThisWorkbook.Save
Bạn cho mình hỏi thêm là khi phát hiện ra số liệu sai lệch rồi, thì có thể dùng con trỏ quét xem sai ở chỗ nào đc ko, vì dữ liệu của mình có đến 2000 dòng nên tìm lỗi sai hoa hết cả mắt, Thanks.
 
Upvote 0
bạn thêm dòng lệng này, nó sẻ đổi màu chử những ô bị sai

Sub DoTim()


Application.ScreenUpdating = False
LastRow = Range("B" & Rows.Count).End(xlUp).Row 'tim dong du lieu cuoi cung


LastCol = Cells(1, 256).End(xlToLeft).Column - 1
For j = 3 To LastCol
For i = 5 To LastRow
Cells(i, j).Select

If Cells(i, j).Value <> Cells(i, j).Offset(-3, 1).Value Then

wbQ = MsgBox("Co gia tri khong khop, ban muon sua ko?", vbYesNo, "")
Application.ScreenUpdating = True
Cells(i, j).Select
If wbQ = vbYes Then
Selection.Font.ColorIndex = 3 ' đổi màu chử thành màu đỏ, bạn thich màu gi thì thay bằng màu đó
Exit Sub
Else

ThisWorkbook.Save

End If
End If
i = i + 3
Application.ScreenUpdating = False
Next i
Application.ScreenUpdating = False
Next j
Application.ScreenUpdating = True

End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom