Tạo Msgbox hiển thị mã mặt hàng (1 người xem)

Liên hệ QC

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

dream3616

Thành viên chính thức
Tham gia
28/8/08
Bài viết
81
Được thích
46
TRong sheet tổng hợp em đã tính được duy nhất và tính tổng. NHưng giờ em muốn sau khi tính được như vậy xong sẽ hiện thị một Msgbox thông báo số lượng mặt hàng được tính tổng và mã mặt hàng nào trong sheet Tonghop không có trong danh mục sheet Mathang. Nhờ mọi người giúp đỡ ah.
Mã:
Sub Tonghop()
Dim Darr, Kq(1 To 65536, 1 To 3), i, k, Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("Nhaphang")
    Darr = .Range(.[A5], .[A1000].End(xlUp)).Resize(, 3).Value
End With
For i = 1 To UBound(Darr)
    If Not Dic.exists(Darr(i, 1)) Then
        k = k + 1
        Dic.Add Darr(i, 1), k
        Kq(k, 1) = Darr(i, 1)
        Kq(k, 2) = Darr(i, 2)
        Kq(k, 3) = Darr(i, 3)
    Else
        Kq(Dic.Item(Darr(i, 1)), 3) = Kq(Dic.Item(Darr(i, 1)), 3) + Darr(i, 3)
    End If
Next i
With Sheets("Tonghop")
    .[A3:C1000].ClearContents
    .[A3].Resize(k, 3).Value = Kq
End With
Set Dic = Nothing
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
PHP:
Sub TongHop()
 Dim dArr, KQ(1 To 65536, 1 To 3), Dic As Object, Sh As Worksheet, Rng As Range, sRng As Range
 Dim I As Long, K As Long:                   Dim Khong As String
 Set Dic = CreateObject("Scripting.Dictionary")
1 Set Sh = ThisWorkbook.Worksheets("MaHang")
2 Set Rng = Sh.Range(Sh.[a3], Sh.[a3].End(xlDown))
 With Sheets("Nhaphang")
    dArr = .Range(.[A5], .[A1000].End(xlUp)).Resize(, 3).Value
 End With
 For I = 1 To UBound(dArr)
    If Not Dic.exists(dArr(I, 1)) Then
        K = K + 1
        Dic.Add dArr(I, 1), K:              KQ(K, 1) = dArr(I, 1)
        KQ(K, 2) = dArr(I, 2):              KQ(K, 3) = dArr(I, 3)
    Else
        KQ(Dic.Item(dArr(I, 1)), 3) = KQ(Dic.Item(dArr(I, 1)), 3) + dArr(I, 3)
    End If
3    Set sRng = Rng.Find(dArr(I, 1), , xlFormulas, xlWhole)
    If sRng Is Nothing Then
        Khong = Khong & dArr(I, 1) & ", "
6    End If
 Next I
7 MsgBox Khong, , K
 With Sheets("Tonghop")
    .[A3:C1000].ClearContents:              .[a3].Resize(K, 3).Value = KQ
 End With
 Set Dic = Nothing
End Sub
 
Upvote 0
PHP:
Sub TongHop()
 Dim dArr, KQ(1 To 65536, 1 To 3), Dic As Object, Sh As Worksheet, Rng As Range, sRng As Range
 Dim I As Long, K As Long:                   Dim Khong As String
 Set Dic = CreateObject("Scripting.Dictionary")
1 Set Sh = ThisWorkbook.Worksheets("MaHang")
2 Set Rng = Sh.Range(Sh.[a3], Sh.[a3].End(xlDown))
 With Sheets("Nhaphang")
    dArr = .Range(.[A5], .[A1000].End(xlUp)).Resize(, 3).Value
 End With
 For I = 1 To UBound(dArr)
    If Not Dic.exists(dArr(I, 1)) Then
        K = K + 1
        Dic.Add dArr(I, 1), K:              KQ(K, 1) = dArr(I, 1)
        KQ(K, 2) = dArr(I, 2):              KQ(K, 3) = dArr(I, 3)
    Else
        KQ(Dic.Item(dArr(I, 1)), 3) = KQ(Dic.Item(dArr(I, 1)), 3) + dArr(I, 3)
    End If
3    Set sRng = Rng.Find(dArr(I, 1), , xlFormulas, xlWhole)
    If sRng Is Nothing Then
        Khong = Khong & dArr(I, 1) & ", "
6    End If
 Next I
7 MsgBox Khong, , K
 With Sheets("Tonghop")
    .[A3:C1000].ClearContents:              .[a3].Resize(K, 3).Value = KQ
 End With
 Set Dic = Nothing
End Sub
Được rồi ah, em cảm ơn bác nhiều
 
Upvote 0

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

Back
Top Bottom