Tặng file quản lý vật tư - công nợ (nhập xuất kho hàng và công nợ khách hàng)

Liên hệ QC

Tặng file quản lý vật tư - công nợ (nhập xuất kho hàng và công nợ khách hàng)​


Vẫn kiểu nhập liệu trực tiếp trên bảng tính, cốt yếu dành cho những ai thích sự đơn giản. File có hướng dẫn khá rõ rồi, nhớ đọc kỹ hướng dẫn sử dụng trước khi dùng.
Cây menu (vụ này là để anh em sau này tìm kiếm cho dễ thôi, chứ càng gõ nhiều càng mệt):
- Công việc
+ Nhập kho
+ Xuất kho
+ Thu chi
+ In phiếu nhập, phiếu xuất
- Danh mục
+ Khách hàng
+ Vật tư hàng hóa
+ Kho
+ Lý do
- Báo cáo
+ Nhập xuất tồn
+ Sổ chi tiết vật tư
+ Bán hàng
+ Chi tiết công nợ 1 khách hàng, nhà cung cấp
+ Tổng hợp công nợ khách hàng, NCC

* Dành cho anh em thích táy máy: Có custom ribbon và menu command tích hợp bằng VBA trong file. Custom ribbon thì thấy ngay trên menu của Excel, còn command thì ở trong menu Add-Ins. Vụ menu này là chỉ để lòe cho vui chứ không tiện so với menu có sẵn trong file.

Cập nhật 20/10/2021: Sửa code báo cáo số dư đầu chương trình của khách hàng tại Báo cáo tổng hợp khách hàng
Cập nhật 04/04/2022: Thêm nút On/Off để bật/tắt sự kiện hiện combobox nhập liệu. Sửa lỗi.
 

File đính kèm

  • 2. Quan ly Vat tu Cong no PostGPE.xlsm
    1.8 MB · Đọc: 727
Lần chỉnh sửa cuối:
M

Gửi bác Maika. Cảm ơn bác đã làm file excel làm kho rất pro. giải quyết rất nhiều khâu của mình. Nhưng hiện tại mình đang sử dụng là chỉ cần số lượng không cần giá trị, vì vậy bác có thể giúp mình xóa hết phần giá trị được không? Mình đã thử xóa nhưng chạy VBA bị lỗi. vì nó liên kết với nhau. Cảm ơn bác rất nhiều. Hoặc có bác nào trong group có thể giúp e được không ạ
Haha! Khộ qua. Quản lý vật tư mà chỉ số lượng thì đâu có được @!>>< . Code thì nhiều, nếu bị lỗi code thì chỉ sửa ở 1 chỗđúngđịa chỉ nơi phát hiện. Cònđây nói dò hếtđể sửa thì e là hơi vất vả.

Thôi, thế này: bạn xóa giá trị, chạy hết những báo cáo hoặc chức năng, nếu gặp lỗi thì ghi ra tên của Sub lỗi, chép dòng code bị lỗi, chụp hình debug chỗ lỗi. Ghi hết 1 thể đăng lên đây.
 
Haha! Khộ qua. Quản lý vật tư mà chỉ số lượng thì đâu có được @!>>< . Code thì nhiều, nếu bị lỗi code thì chỉ sửa ở 1 chỗđúngđịa chỉ nơi phát hiện. Cònđây nói dò hếtđể sửa thì e là hơi vất vả.

Thôi, thế này: bạn xóa giá trị, chạy hết những báo cáo hoặc chức năng, nếu gặp lỗi thì ghi ra tên của Sub lỗi, chép dòng code bị lỗi, chụp hình debug chỗ lỗi. Ghi hết 1 thể đăng lên đây.
bên mình chỉ quản lý số lượng ah, giá trị thì kế toán tự xử. em có gửi email cho bác luôn mà ko thấy bác trả lời nên em đưa lên đây xin ý kiến
 
bên mình chỉ quản lý số lượng ah, giá trị thì kế toán tự xử. em có gửi email cho bác luôn mà ko thấy bác trả lời nên em đưa lên đây xin ý kiến
Bạn cứ làm như tôi nói đi!

Còn email maika8008 bị rối do quá nhiều mail thông báo từ GPE đến. Nếu cần bạn cứ nói thẳng trên trang, còn dữ liệu không tiện công khai thì bạn inbox.
 
Bạn cứ làm như tôi nói đi!

Còn email maika8008 bị rối do quá nhiều mail thông báo từ GPE đến. Nếu cần bạn cứ nói thẳng trên trang, còn dữ liệu không tiện công khai thì bạn inbox.
1.png

2.png

Sau khi mình xóa mấy mục đơn giá trong Nhap, Xuat thì báo cáo xuất nhập tồn bị lỗi như vậy, bạn gúp mình với
 

File đính kèm

  • Quản lý vật tư XNT_NT6.2.xlsm
    1.4 MB · Đọc: 24
Tôi nói rồi, bạn ghi rõ:
1/ Chạy chức năng/công việc gì
2/ Sub (tên của nó) lỗi
3/ Chép dòng code bị lỗi + chụp hình debug chỗ lỗi.

Làm hết cho các công việc luôn để đảm bảo không thiếu chỗ nào rồi đăng lên 1 lần.
 
Tôi nói rồi, bạn ghi rõ:
1/ Chạy chức năng/công việc gì
2/ Sub (tên của nó) lỗi
3/ Chép dòng code bị lỗi + chụp hình debug chỗ lỗi.

Làm hết cho các công việc luôn để đảm bảo không thiếu chỗ nào rồi đăng lên 1 lần.
thật sự mình ko rành về VBA lắm nên ko biết phải nói sao cho bạn hiểu.hic hic.bạn có thể để lại sdt để mình liên lạc riêng zalo được ko?
 
Bạn xóa thứ gì là do bạn. Chạy hết các báo cáo để tìm ra lỗi và làm như tôi nói. Tôi dứt khoát không làm thay bạn chuyện đó. Bạn không chịu khó để làm thì đừng buộc tôi phải chịu khó cho bạn.
 
1. Lỗi sổ chi tiết
- Khi mình chạy sổ chi tiết vật tư thì Cột ghi chú ghi lỗi #N/A
1.png
-
Sub SoChiTiet_NVL()
Dim arrN, arrX, Val
Dim EndR As Long, MSVT As String
Dim Fday As Date, Lday As Date
Dim i As Long, j As Long, EndRVT As Long, p
Dim KQ(), SLDK As Double
Dim SLN As Double, SLX As Double

Application.ScreenUpdating = False

On Error GoTo Loi
Val = Range("D12")
If Len(Val) = 0 Then
MsgBox "Het roi!"
Exit Sub
End If

EndR = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row

MSVT = Sheet15.Range("D12")
Fday = Sheet15.Range("F10")
Lday = Sheet15.Range("H10")

EndR = Sheet1.Range("D" & Rows.Count).End(xlUp).Row
arrN = Sheet1.Range("C7:J" & EndR).Value
EndR = Sheet21.Range("D" & Rows.Count).End(xlUp).Row
arrX = Sheet21.Range("C8:J" & EndR).Value
SLDK = WorksheetFunction.IfError(WorksheetFunction.VLookup(MSVT, Sheet7.Range("C7:F" & Sheet7.Range("C" & Rows.Count).End(xlUp).Row), 4, 0), "")
ReDim KQ(1 To UBound(arrX), 1 To 7)

'Duyet du lieu nhap
For i = 1 To UBound(arrN)
If UCase(arrN(i, 5)) = UCase(MSVT) Then
If arrN(i, 1) >= Fday And arrN(i, 1) <= Lday Then
j = j + 1
KQ(j, 1) = arrN(i, 2)
KQ(j, 2) = arrN(i, 1)
KQ(j, 3) = WorksheetFunction.IfError(WorksheetFunction.VLookup(arrN(i, 3), Sheet12.Range("C6:D" & Sheet12.Range("C" & Rows.Count).End(xlUp).Row), 2, 0), "")
KQ(j, 4) = arrN(i, 7)
KQ(j, 5) = arrN(i, 8)
SLN = SLN + arrN(i, 8)
ElseIf arrN(i, 1) < Fday Then
SLDK = SLDK + arrN(i, 8)
End If
End If
Next i

'Duyet du lieu xuat
For i = 1 To UBound(arrX)
If UCase(arrX(i, 5)) = UCase(MSVT) Then
If arrX(i, 1) >= Fday And arrX(i, 1) <= Lday Then
j = j + 1
KQ(j, 1) = arrX(i, 2)
KQ(j, 2) = arrX(i, 1)
KQ(j, 3) = WorksheetFunction.IfError(WorksheetFunction.VLookup(arrX(i, 3), Sheet12.Range("C6:D" & Sheet12.Range("C" & Rows.Count).End(xlUp).Row), 2, 0), "")
KQ(j, 4) = arrX(i, 7)
KQ(j, 6) = arrX(i, 8)
SLX = SLX + arrX(i, 8)
ElseIf arrX(i, 1) < Fday Then
SLDK = SLDK - arrX(i, 8)
End If
End If
Next i

Sheet15.Activate
Range("H17") = SLDK
EndR = Range("C" & Rows.Count).End(xlUp).Row
If EndR > 16 Then
Range("B18" & ":B" & EndR).EntireRow.Delete
End If
If j > 0 Then
Range("B19" & ":B" & 19 + j - 1).EntireRow.Insert
Range("B18").Resize(j, 11).Value = KQ
Range("B18:I" & Range("C" & Rows.Count).End(xlUp).Row).Sort Key1:=Range("C18"), Order1:=xlAscending, Header:=xlNo
ReDim KQ(1 To j + 1, 1 To 8)
KQ = Range("B17:I" & Range("C" & Rows.Count).End(xlUp).Row).Value
For i = 2 To UBound(KQ)
KQ(i, 7) = KQ(i - 1, 7) + KQ(i, 5) - KQ(i, 6)
Next
Range("B17").Resize(j + 1, 8).Value = KQ
Range("F" & j + 20) = SLN
Range("G" & j + 20) = SLX
Range("H" & j + 20) = KQ(j + 1, 7)
Range("D" & j + 20) = "T" & ChrW(7892) & "NG C" & ChrW(7896) & "NG"
Else
For i = 7 To 10
Cells(20, i) = 0
Next
Cells(20, 11) = Cells(17, 11)
Cells(20, 12) = Cells(17, 12)
End If

Application.ScreenUpdating = True

Sheets("SCT").UsedRange

Exit Sub
Loi:
MsgBox "The following error occurred: " & Err.Number & vbCrLf & Err.Description
Application.Calculation = xlCalculationAutomatic

End Sub
2. Lỗi khi chạy báo cáo chi tiết công nợ khách hàng
3.png
Khi click vào sẽ hiện lỗi
2.png

Private Sub CommandButton1_Click()
If OptBHCT = True Then
BanHang_ChiTiet
End If
End Sub

Nhờ bạn giúp đỡ mình mấy lỗi này. Cảm ơn bạn
 

File đính kèm

  • Quản lý vật tư XNT_NT6.4.xlsm
    1.4 MB · Đọc: 20
1. Lỗi sổ chi tiết
- Khi mình chạy sổ chi tiết vật tư thì Cột ghi chú ghi lỗi #N/A
View attachment 258597
-
Sub SoChiTiet_NVL()
Dim arrN, arrX, Val
Dim EndR As Long, MSVT As String
Dim Fday As Date, Lday As Date
Dim i As Long, j As Long, EndRVT As Long, p
Dim KQ(), SLDK As Double
Dim SLN As Double, SLX As Double

Application.ScreenUpdating = False

On Error GoTo Loi
Val = Range("D12")
If Len(Val) = 0 Then
MsgBox "Het roi!"
Exit Sub
End If

EndR = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row

MSVT = Sheet15.Range("D12")
Fday = Sheet15.Range("F10")
Lday = Sheet15.Range("H10")

EndR = Sheet1.Range("D" & Rows.Count).End(xlUp).Row
arrN = Sheet1.Range("C7:J" & EndR).Value
EndR = Sheet21.Range("D" & Rows.Count).End(xlUp).Row
arrX = Sheet21.Range("C8:J" & EndR).Value
SLDK = WorksheetFunction.IfError(WorksheetFunction.VLookup(MSVT, Sheet7.Range("C7:F" & Sheet7.Range("C" & Rows.Count).End(xlUp).Row), 4, 0), "")
ReDim KQ(1 To UBound(arrX), 1 To 7)

'Duyet du lieu nhap
For i = 1 To UBound(arrN)
If UCase(arrN(i, 5)) = UCase(MSVT) Then
If arrN(i, 1) >= Fday And arrN(i, 1) <= Lday Then
j = j + 1
KQ(j, 1) = arrN(i, 2)
KQ(j, 2) = arrN(i, 1)
KQ(j, 3) = WorksheetFunction.IfError(WorksheetFunction.VLookup(arrN(i, 3), Sheet12.Range("C6:D" & Sheet12.Range("C" & Rows.Count).End(xlUp).Row), 2, 0), "")
KQ(j, 4) = arrN(i, 7)
KQ(j, 5) = arrN(i, 8)
SLN = SLN + arrN(i, 8)
ElseIf arrN(i, 1) < Fday Then
SLDK = SLDK + arrN(i, 8)
End If
End If
Next i

'Duyet du lieu xuat
For i = 1 To UBound(arrX)
If UCase(arrX(i, 5)) = UCase(MSVT) Then
If arrX(i, 1) >= Fday And arrX(i, 1) <= Lday Then
j = j + 1
KQ(j, 1) = arrX(i, 2)
KQ(j, 2) = arrX(i, 1)
KQ(j, 3) = WorksheetFunction.IfError(WorksheetFunction.VLookup(arrX(i, 3), Sheet12.Range("C6:D" & Sheet12.Range("C" & Rows.Count).End(xlUp).Row), 2, 0), "")
KQ(j, 4) = arrX(i, 7)
KQ(j, 6) = arrX(i, 8)
SLX = SLX + arrX(i, 8)
ElseIf arrX(i, 1) < Fday Then
SLDK = SLDK - arrX(i, 8)
End If
End If
Next i

Sheet15.Activate
Range("H17") = SLDK
EndR = Range("C" & Rows.Count).End(xlUp).Row
If EndR > 16 Then
Range("B18" & ":B" & EndR).EntireRow.Delete
End If
If j > 0 Then
Range("B19" & ":B" & 19 + j - 1).EntireRow.Insert
Range("B18").Resize(j, 11).Value = KQ
Range("B18:I" & Range("C" & Rows.Count).End(xlUp).Row).Sort Key1:=Range("C18"), Order1:=xlAscending, Header:=xlNo
ReDim KQ(1 To j + 1, 1 To 8)
KQ = Range("B17:I" & Range("C" & Rows.Count).End(xlUp).Row).Value
For i = 2 To UBound(KQ)
KQ(i, 7) = KQ(i - 1, 7) + KQ(i, 5) - KQ(i, 6)
Next
Range("B17").Resize(j + 1, 8).Value = KQ
Range("F" & j + 20) = SLN
Range("G" & j + 20) = SLX
Range("H" & j + 20) = KQ(j + 1, 7)
Range("D" & j + 20) = "T" & ChrW(7892) & "NG C" & ChrW(7896) & "NG"
Else
For i = 7 To 10
Cells(20, i) = 0
Next
Cells(20, 11) = Cells(17, 11)
Cells(20, 12) = Cells(17, 12)
End If

Application.ScreenUpdating = True

Sheets("SCT").UsedRange

Exit Sub
Loi:
MsgBox "The following error occurred: " & Err.Number & vbCrLf & Err.Description
Application.Calculation = xlCalculationAutomatic

End Sub
2. Lỗi khi chạy báo cáo chi tiết công nợ khách hàng
View attachment 258598
Khi click vào sẽ hiện lỗi
View attachment 258599

Private Sub CommandButton1_Click()
If OptBHCT = True Then
BanHang_ChiTiet
End If
End Sub

Nhờ bạn giúp đỡ mình mấy lỗi này. Cảm ơn bạn
Có 1 chỗ đó thôi á? Bạn có chắc không vậy?

Trời đất! Bạn xóa hết các object của file gốc, xóa luôn code lựa chọn thi hành, sao không lỗi được. Cái đó gọi là lỗi bậy!!!

Chưa kể đến các code chính sẽ lỗi do nhiều thứ bị lủng nữa.

Bạn quay lại file gốc của tôi mà nhập dữ liệu đi, tôn trọng tôi chút!
 
Lần chỉnh sửa cuối:
Có 1 chỗ đó thôi á? Bạn có chắc không vậy?

Trời đất! Bạn xóa hết các object của file gốc, xóa luôn code lựa chọn thi hành, sao không lỗi được. Cái đó gọi là lỗi bậy!!!

Chưa kể đến các code chính sẽ lỗi do nhiều thứ bị lủng nữa.

Bạn quay lại file gốc của tôi mà nhập dữ liệu đi, tôn trọng tôi chút!
hiện tại chỉ có bấy nhiêu đó lỗi thôi bạn.
 
Có 1 chỗ đó thôi á? Bạn có chắc không vậy?

Trời đất! Bạn xóa hết các object của file gốc, xóa luôn code lựa chọn thi hành, sao không lỗi được. Cái đó gọi là lỗi bậy!!!

Chưa kể đến các code chính sẽ lỗi do nhiều thứ bị lủng nữa.

Bạn quay lại file gốc của tôi mà nhập dữ liệu đi, tôn trọng tôi chút!
sau một hồi chỉnh tới chỉnh lui thì tôi dùng lại file của bạn. và ẩn đi các dòng ko cần thiết thôi. Nhưng có chỗ báo cáo mình không sử dụng cột "doanh số". "giá trị hàng trả""thanh toán""số dư công nợ" mình muốn nhờ bạn ẩn đi giùm mình được ko?mình đã thử ẩn cột rồi nhưng khi bấm xem báo cáo lại vẫn hiện ra. Bạn có thể giúp mình ẩn mấy cột đó được không?
1621174754722.png
 

File đính kèm

  • Quản lý vật tư XNT_NT6.2.xlsm
    1.7 MB · Đọc: 24
Vẫn kiểu nhập liệu trực tiếp trên bảng tính, cốt yếu dành cho những ai thích sự đơn giản. File có hướng dẫn khá rõ rồi, nhớ đọc kỹ hướng dẫn sử dụng trước khi dùng.
Cây menu (vụ này là để anh em sau này tìm kiếm cho dễ thôi, chứ càng gõ nhiều càng mệt):
- Công việc
+ Nhập kho
+ Xuất kho
+ Thu chi
+ In phiếu nhập, phiếu xuất
- Danh mục
+ Khách hàng
+ Vật tư hàng hóa
+ Kho
+ Lý do
- Báo cáo
+ Nhập xuất tồn
+ Sổ chi tiết vật tư
+ Bán hàng
+ Chi tiết công nợ 1 khách hàng, nhà cung cấp
+ Tổng hợp công nợ khách hàng, NCC

* Dành cho anh em thích táy máy: Có custom ribbon và menu command tích hợp bằng VBA trong file. Custom ribbon thì thấy ngay trên menu của Excel, còn command thì ở trong menu Add-Ins. Vụ menu này là chỉ để lòe cho vui chứ không tiện so với menu có sẵn trong file.
cho mình hỏi cách làm nút auto tên hàng hóa,mình làm đc nhưng của mình chỉ đánh đúng tên mới hiên lên,sai một dấu cách cũng báo lỗi.
cảm ơn bạn
 
Nút auto tên hàng hóa là gì?
phần tên hàng hóa tạo nút data validation, mình làm phần này khi mình nhập tên hàng hóa vẫn ra list danh sách có hai cách một là mình phải đánh đúng tên hàng hóa chính xác,hai là mình phải tìm cho đúng tên hàng hóa trong list
còn của bạn mình chỉ cần đánh một chữ cái là nó sẽ hiện ra tên gần đúng cho mình chọn
chỉ mình với ạ
 
phần tên hàng hóa tạo nút data validation, mình làm phần này khi mình nhập tên hàng hóa vẫn ra list danh sách có hai cách một là mình phải đánh đúng tên hàng hóa chính xác,hai là mình phải tìm cho đúng tên hàng hóa trong list
còn của bạn mình chỉ cần đánh một chữ cái là nó sẽ hiện ra tên gần đúng cho mình chọn
chỉ mình với ạ
Vụ này có code rồi đó nhưng bỏ lâu mỗi lần làm lại cũng khùng đầu luôn. Bạn muốn chỉ thì đưa file đây, ghi chú rõ muốn làm thế nào.
 
sau một hồi chỉnh tới chỉnh lui thì tôi dùng lại file của bạn. và ẩn đi các dòng ko cần thiết thôi. Nhưng có chỗ báo cáo mình không sử dụng cột "doanh số". "giá trị hàng trả""thanh toán""số dư công nợ" mình muốn nhờ bạn ẩn đi giùm mình được ko?mình đã thử ẩn cột rồi nhưng khi bấm xem báo cáo lại vẫn hiện ra. Bạn có thể giúp mình ẩn mấy cột đó được không?
View attachment 258762
Trong cửa sổ VBA, đến module Format, tìm Sub Fmt_CongNo1KH(), thêm dòng này vào cuối sub (trước End Sub):
Range("I6:L6").EntireColumn.Hidden = True 'An 4 cot
 
Web KT
Back
Top Bottom