Em xin Code tính tổng SL "Nhập-Xuất" của các Mã Hàng

Liên hệ QC

mandala

Thành viên chính thức
Tham gia
2/4/15
Bài viết
51
Được thích
9
1 mật khẩu: 25251325109
Em xin code tính:
Tổng Nhập
Tổng Xuất
Tồn75+10-20
2
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ếuSố phiếu
10098
9999
98100
Em xin cảm ơn!
 

File đính kèm

  • jpge2.xlsm
    90.7 KB · Đọc: 10
1 mật khẩu: 25251325109
Em xin code tính:
Tổng Nhập
Tổng Xuất
Tồn75+10-20
2
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ướcsau khi sắp xếp
Số phiếuSố phiếu
10098
9999
98100
Em xin cảm ơn!
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
 
Upvote 0
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/201999Xuất bán khách chị Lê (không nồi)SSI-285155
09/01/201997Xuất bán khách chị Lê (không nồi)SSI-2851105

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-2851Bàn là hơi nước SINBO SSI-2851405405
 

File đính kèm

  • jpge2.xlsm
    91.6 KB · Đọc: 21
Upvote 0
09/01/201999Xuất bán khách chị Lê (không nồi)SSI-285155
09/01/201997Xuất bán khách chị Lê (không nồi)SSI-2851105

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-2851Bàn là hơi nước SINBO SSI-2851405405
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
 
Upvote 0
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

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:
DateSố phiếuNgười làm phiếuNội dungMã hàngNhập Xuất
09/01/201997Xuất bán khách chị Lê (không nồi)SSI-2851105
10/09/20182Bùi Thanh HuyềnEFC-114010
21/02/20191Thúy Mua 200.000EFC-11455

sau khi chạy code:
DateSố phiếuNgười làm phiếuNội dungMã hàngNhập Xuất
21/02/20191Thúy Mua 200.000EFC-11455
10/09/20182Bùi Thanh HuyềnEFC-114010
09/01/201997Xuất bán khách chị Lê (không nồi)SSI-2851105

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("D12:D19"), _
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
 
Upvote 0
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:
DateSố phiếuNgười làm phiếuNội dungMã hàngNhậpXuất
09/01/201997Xuất bán khách chị Lê (không nồi)SSI-2851105
10/09/20182Bùi Thanh HuyềnEFC-114010
21/02/20191Thúy Mua 200.000EFC-11455

sau khi chạy code:
DateSố phiếuNgười làm phiếuNội dungMã hàngNhậpXuất
21/02/20191Thúy Mua 200.000EFC-11455
10/09/20182Bùi Thanh HuyềnEFC-114010
09/01/201997Xuất bán khách chị Lê (không nồi)SSI-2851105

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("D12:D19"), _
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 đỡ.
Mình giới tính nữ nhé bạn ! Chắc cần chuyển giới mới là anh được
Bạn Thử code này xem sao
Mã:
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
 
Upvote 0
Web KT
Back
Top Bottom