mandala
Thành viên chính thức
- Tham gia
- 2/4/15
- Bài viết
- 51
- Được thích
- 9
Bạn thử với phần tính tồn:1 mật khẩu: 25251325109
2
Em xin code tính: Tổng Nhập Tổng Xuất Tồn 75+10-20
Sheet Nhap_Xuât: em xin code sắp xếp theo số phiếu, số nhỏ sẽ lên trên em có n dòng Trước sau khi sắp xếp Số phiếu Số phiếu 100 98 99 99 98 100 Em xin cảm ơn!
Sub Ton()
Dim a(), b(), i, R
With Sheets("Kho_PhoVong")
i = .Range("A" & Rows.Count).End(xlUp).Row
If i < 13 Then MsgBox ("Khong co du lieu"): Exit Sub
a = .Range("A13:E" & i).Value2
R = UBound(a, 1)
ReDim b(1 To R, 1 To 1)
For i = 1 To R
b(i, 1) = a(i, 3) + a(i, 4) - a(i, 5)
Next i
.Range("F13").Resize(R) = b
End With
End Sub
Bạn thử với phần tính tồn:
PHP:Sub Ton() Dim a(), b(), i, R With Sheets("Kho_PhoVong") i = .Range("A" & Rows.Count).End(xlUp).Row If i < 13 Then MsgBox ("Khong co du lieu"): Exit Sub a = .Range("A13:E" & i).Value2 R = UBound(a, 1) ReDim b(1 To R, 1 To 1) For i = 1 To R b(i, 1) = a(i, 3) + a(i, 4) - a(i, 5) Next i .Range("F13").Resize(R) = b End With End Sub
09/01/2019 | 99 | Xuất bán khách chị Lê (không nồi) | SSI-2851 | 5 | 5 | |||
09/01/2019 | 97 | Xuất bán khách chị Lê (không nồi) | SSI-2851 | 10 | 5 |
SSI-2851 | Bàn là hơi nước SINBO SSI-2851 | 405 | 405 |
Bạn thử xem code này xem sao ?
09/01/2019 99 Xuất bán khách chị Lê (không nồi) SSI-2851 5 5 09/01/2019 97 Xuất bán khách chị Lê (không nồi) SSI-2851 10 5
sao em nhập thêm giữ liệu mã: SSI-2861 sau đó chạy code ko thấy Tổng Nhập & Tổng Xuất của mã này nhỉ
anh xem lại hộ em với.
SSI-2851 Bàn là hơi nước SINBO SSI-2851 405 405
Sub NhapXuatTon()
Dim aDanhMuc(), aDuLieu(), i As Long, EndRow As Long, ik As Long, Dic As Object, DieuKien As String
Set Dic = CreateObject("Scripting.Dictionary")
Const cdMaHang As Long = 1: Const cdNhap As Long = 2: Const cdXuat As Long = 3
With Sheets("Kho_PhoVong")
EndRow = .Range("A" & Rows.Count).End(xlUp).Row
If EndRow < 13 Then Exit Sub
.Range("D13:F" & EndRow).ClearContents
aDanhMuc = .Range("A13:F" & EndRow).Value
End With
For i = 1 To UBound(aDanhMuc)
Dic.Item(aDanhMuc(i, cdMaHang)) = i
Next i
aDuLieu = Sheets("Nhap_Xuat").Range("E12:G" & Sheets("Nhap_Xuat").Range("E" & Rows.Count).End(xlUp).Row).Value
For i = 1 To UBound(aDuLieu)
DieuKien = aDuLieu(i, cdMaHang)
ik = Dic.Item(DieuKien)
If ik Then
aDanhMuc(ik, 4) = aDanhMuc(ik, 4) + aDuLieu(i, cdNhap)
aDanhMuc(ik, 5) = aDanhMuc(ik, 5) + aDuLieu(i, cdXuat)
aDanhMuc(ik, 6) = aDanhMuc(ik, 3) + aDanhMuc(ik, 4) - aDanhMuc(ik, 5)
End If
Next i
Sheets("Kho_PhoVong").Range("A13:F" & EndRow).Value = aDanhMuc
End Sub
Bạn thử xem code này xem sao ?
Mã:Sub NhapXuatTon() Dim aDanhMuc(), aDuLieu(), i As Long, EndRow As Long, ik As Long, Dic As Object, DieuKien As String Set Dic = CreateObject("Scripting.Dictionary") Const cdMaHang As Long = 1: Const cdNhap As Long = 2: Const cdXuat As Long = 3 With Sheets("Kho_PhoVong") EndRow = .Range("A" & Rows.Count).End(xlUp).Row If EndRow < 13 Then Exit Sub .Range("D13:F" & EndRow).ClearContents aDanhMuc = .Range("A13:F" & EndRow).Value End With For i = 1 To UBound(aDanhMuc) Dic.Item(aDanhMuc(i, cdMaHang)) = i Next i aDuLieu = Sheets("Nhap_Xuat").Range("E12:G" & Sheets("Nhap_Xuat").Range("E" & Rows.Count).End(xlUp).Row).Value For i = 1 To UBound(aDuLieu) DieuKien = aDuLieu(i, cdMaHang) ik = Dic.Item(DieuKien) If ik Then aDanhMuc(ik, 4) = aDanhMuc(ik, 4) + aDuLieu(i, cdNhap) aDanhMuc(ik, 5) = aDanhMuc(ik, 5) + aDuLieu(i, cdXuat) aDanhMuc(ik, 6) = aDanhMuc(ik, 3) + aDanhMuc(ik, 4) - aDanhMuc(ik, 5) End If Next i Sheets("Kho_PhoVong").Range("A13:F" & EndRow).Value = aDanhMuc End Sub
Date | Số phiếu | Người làm phiếu | Nội dung | Mã hàng | Nhập | Xuất |
09/01/2019 | 97 | Xuất bán khách chị Lê (không nồi) | SSI-2851 | 10 | 5 | |
10/09/2018 | 2 | Bùi Thanh Huyền | EFC-114 | 0 | 10 | |
21/02/2019 | 1 | Thúy Mua 200.000 | EFC-114 | 5 | 5 |
Date | Số phiếu | Người làm phiếu | Nội dung | Mã hàng | Nhập | Xuất |
21/02/2019 | 1 | Thúy Mua 200.000 | EFC-114 | 5 | 5 | |
10/09/2018 | 2 | Bùi Thanh Huyền | EFC-114 | 0 | 10 | |
09/01/2019 | 97 | Xuất bán khách chị Lê (không nồi) | SSI-2851 | 10 | 5 |
Thank anh!
Em vẫn còn thắc mắc vẫn đề khác nhờ anh giúp đỡ.
Em có code sắp xếp số phiếu theo thứ tự từ nhỏ đến lớn, nhưng em mới học nhìn code dài quá anh có thể cho em xin code sắp xếp theo cách của anh được không?
Trước khi chạy code sắp xếp theo số phiếu:
Date Số phiếu Người làm phiếu Nội dung Mã hàng Nhập Xuất 09/01/2019 97 Xuất bán khách chị Lê (không nồi) SSI-2851 10 5 10/09/2018 2 Bùi Thanh Huyền EFC-114 0 10 21/02/2019 1 Thúy Mua 200.000 EFC-114 5 5
sau khi chạy code:
Date Số phiếu Người làm phiếu Nội dung Mã hàng Nhập Xuất 21/02/2019 1 Thúy Mua 200.000 EFC-114 5 5 10/09/2018 2 Bùi Thanh Huyền EFC-114 0 10 09/01/2019 97 Xuất bán khách chị Lê (không nồi) SSI-2851 10 5
Sub Macro11()
'
' sap xep thu tu theo so phieu
ActiveSheet.Unprotect
Range("A11:I999").Select
ActiveWorkbook.Worksheets("Nhap_Xuat").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Nhap_Xuat").Sort.SortFields.Add(Range("A12:A999"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 204)
ActiveWorkbook.Worksheets("Nhap_Xuat").Sort.SortFields.Add Key:=Range( _
"B12:B19"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Nhap_Xuat").Sort.SortFields.Add(Range("C12:C999"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 204)
ActiveWorkbook.Worksheets("Nhap_Xuat").Sort.SortFields.Add(Range("D1219"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 204)
ActiveWorkbook.Worksheets("Nhap_Xuat").Sort.SortFields.Add(Range("E12:E999"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 204)
ActiveWorkbook.Worksheets("Nhap_Xuat").Sort.SortFields.Add(Range("F12:F999"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 204)
ActiveWorkbook.Worksheets("Nhap_Xuat").Sort.SortFields.Add(Range("G12:G999"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 204)
ActiveWorkbook.Worksheets("Nhap_Xuat").Sort.SortFields.Add(Range("H12:H999"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 204)
ActiveWorkbook.Worksheets("Nhap_Xuat").Sort.SortFields.Add(Range("I12:I999"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 204)
With ActiveWorkbook.Worksheets("Nhap_Xuat").Sort
.SetRange Range("A11:I999")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("Nhap_Xuat").Select
End Sub
Em vẫn còn thắc mắc vẫn đề khác nhờ anh giúp đỡ.
Sub SortAToZ()
Dim EndRow As Long
With Sheets("Nhap_Xuat")
.Unprotect
EndRow = .Range("A" & Rows.Count).End(xlUp).Row
If EndRow < 12 Then Exit Sub
.Range("A12:I12").Resize(EndRow).Sort Key1:=.Range("B12"), Order1:=xlAscending
End With
End Sub
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2