Download as pdf or txt
Download as pdf or txt
You are on page 1of 47

CÁC BÀI TẬP MẪU EXCEL

LUYEN CODE VBA 04-08-2015

1
A B C D E F G H I J K L M N O P Q

5
Bảng 1 Bảng 2

6 DWG TYPE Rev Quantity DWG TYPE Quantity Bảng 2


7 95-1637-004 NV-Y712PB M 192 95-1637-004 NV-Y712PB 192 Private Sub CommandButton1_Click()
8 9C-1650-004 NV-Z262P G 528 9C-1650-004 NV-Z262P 528 Dim Arr(), i As Long, rng As Range
9 9D-1423-004 NV-D227PJA F 1800 9D-1423-004 NV-D227PJA 1800 Arr = Range("G7", [G65536].End(xlUp)).Resize(, 4).Value
10 9A-1721-004 NV-Y812P H 240 9A-1721-004 NV-Y812P 240 For i = 1 To UBound(Arr, 1)
11 9A-1748-004 NV-Y934PB E 552 9A-1748-004 NV-Y934PB 552 Set rng = Range("B:B").Find(Arr(i, 1), , , xlWhole)
12 9A-1150-004 NV-Y855P M 360 9A-1150-004 NV-Y855P 360 If Not rng Is Nothing Then
13 9E-1250-004 NV-Z627PD - 360 9E-1250-004 NV-Z627PD 360 Arr(i, 3) = rng.Offset(, 3)
14 9E-1166-004 NV-D035PC D 888 End If
15 95-1382-004 NV-Y919PB G 240 Next
16 9D-1152-004 NV-Y107P G 1080 Range("G7").Resize(i - 1, 3) = Arr
17 9A-1319-004 NV-Y911P G 528 End Sub
18 91-1772-004 NV-Y876PC M 528
19 94-1610-004 IV-702-MTS2 K 600
20 9D-1224-004 NV-Z314P M 1320 Bảng 3 Bảng 3
21 9A-1083-004 IV-802-MAK H 960 DWG TYPE Quantity Private Sub CommandButton2_Click()
22 9A-1334-004 NV-Y935P J 360 9A-1334-004 NV-Y935P 360 Dim Arr(), i As Long, rng As Range
23 92-1738-004 NV-Y896PB M 3960 92-1738-004 NV-Y896PB 1000 Arr = Range("G22", [G65536].End(xlUp)).Resize(, 4).Value
24 9B-1995-004 NV-Y133P F 576 9B-1995-004 NV-Y133P 576 For i = 1 To UBound(Arr, 1)
25 9B-1759-004 NV-Y795P F 480 9B-1759-004 NV-Y795P 480 Set rng = Range("B:B").Find(Arr(i, 1), , , xlWhole)
26 9C-1050-004 NV-Y243P E 480 9C-1050-004 NV-Y243P 2000 If Not rng Is Nothing Then
27 9B-1076-004 NV-Y965P K 192 If Arr(i, 3) = Empty Then
28 9B-1888-004 NV-Z340PA G 480 Arr(i, 3) = rng.Offset(, 3)
29 9C-1340-004 AV06GF-P D 2400 End If
30 9D-1729-004 NV-D227PGA D 1800 End If
31 9A-1459-004 NV-Y750PB G 528 Next
32 9D-1135-004 NV-D237PJ G 2640 Range("G22").Resize(i - 1, 3) = Arr
33 9E-1204-004 NV-D1010P B 312 End Sub
34 95-1491-004 NV-Y231P N 480
35 9A-1906-004 NV-Y887PJ H 120
36 9E-1031-004 NV-D939PA E 720 Bảng 4 Bảng 4
37 DWG TYPE Rev Quantity Private Sub CommandButton3_Click()
38 9E-1204-004 NV-D1010P B 312 Dim Arr(), i As Long, j As Long, rng As Range
39 95-1491-004 NV-Y231P N 480 Arr = Range("G38", [G65536].End(xlUp)).Resize(, 4).Value
40 9A-1906-004 NV-Y887PJ H 120 For i = 1 To UBound(Arr, 1)
41 9E-1031-004 NV-D939PA E 720 Set rng = Range("B:B").Find(Arr(i, 1), , , xlWhole)
42 If Not rng Is Nothing Then
43 For j = 3 To 4
44 Arr(i, j) = rng.Offset(, j - 1)
45 Next
46 End If
47 Next
48 Range("G38").Resize(i - 1, 4) = Arr
49 End Sub
50

2
A B C D E F G H I J K L M N O P
3 Bảng 1 Bảng 2
4 STT DWG TYPE Rev T1/2015 T2/2015 T3/2015 T4/2015
5 1 95-1637-004 NV-Y712PB M 1 5 4 STT 1 2 3 4
6 2 9C-1650-004 NV-Z262P G 5 DWG 95-1637-004 9C-1650-004 9D-1423-004 9A-1721-004
7 3 9D-1423-004 NV-D227PJA F 4 TYPE NV-Y712PB NV-Z262P NV-D227PJA NV-Y812P
8 4 9A-1721-004 NV-Y812P H 5 Rev M G F H
9 T1/2015 1
10 T2/2015 5 4
11 T3/2015 4 5
12 T4/2015 5
13
14 Private Sub CommandButton1_Click()
15 Dim Arr(), Darr(), i As Long, j As Long, k As Long
16 Arr = Range("C5", [C65536].End(xlUp)).Resize(, 8).Value2 Bảng 3
17 For i = 1 To UBound(Arr, 1)
18 k=k+1 STT 95-1637-004 9C-1650-004 9D-1423-004 9A-1721-004
19 ReDim Preserve Darr(1 To 65536, 1 To k) DWG NV-Y712PB NV-Z262P NV-D227PJA NV-Y812P
20 Darr(1, k) = k TYPE M G F H
21 Darr(2, k) = Arr(i, 1) Rev 1
22 Darr(3, k) = Arr(i, 2) T1/2015 5 4
23 Darr(4, k) = Arr(i, 3) T2/2015 4 5
24 Darr(5, k) = Arr(i, 4) T3/2015 5
25 Darr(6, k) = Arr(i, 5) T4/2015
26 Darr(7, k) = Arr(i, 6)
27 Darr(8, k) = Arr(i, 7)
28 Darr(9, k) = Arr(i, 8)
29 Next
30 Range("M5").Resize(8, k) = Darr
31 End Sub
32
33
34 Private Sub CommandButton3_Click()
35 Dim Arr(), Darr(), i As Long, j As Long, k As Long
36 Arr = Range("C5", [C65536].End(xlUp)).Resize(, 8).Value2
37 ReDim Darr(1 To UBound(Arr, 2), 1 To UBound(Arr))
38 For i = 1 To UBound(Arr)
39 For j = 1 To UBound(Arr, 2)
40 Darr(j, i) = Arr(i, j)
41 Next
42 Next
43 Range("M18").Resize(UBound(Darr), UBound(Darr, 2)) = Darr
44 End S
45
46

3
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA
3 Bảng 1 Bảng 2
4
5 STT DWG TYPE Rev 1 5 4 2 3 STT DWG TYPE Rev 1 2 3 4 5 Private Sub CommandButton1_Click()
6 1 95-1637-004 NV-Y712PB M 1 5 4 2 3 1 95-1637-004 NV-Y712PB M 1 2 3 4 5 Dim Arr(), Darr(1 To 65536, 1 To 9)
7 2 9C-1650-004 NV-Z262P G 2 2 9C-1650-004 NV-Z262P G 2 Dim I As Long, K As Long
8 3 9D-1423-004 NV-D227PJA F 1 5 4 1 3 9D-1423-004 NV-D227PJA F 1 1 4 5 Arr = Range("C6", [C65536].End(xlUp)).Resize(, 8).Value2
9 4 9A-1721-004 NV-Y812P H 5 4 9A-1721-004 NV-Y812P H 5 For I = 1 To UBound(Arr, 1)
10 5 9A-1748-004 NV-Y934PB E 4 4 5 9A-1748-004 NV-Y934PB E 4 4 K=K+1
11 6 9A-1150-004 NV-Y855P M 2 6 6 9A-1150-004 NV-Y855P M 2 6 Darr(K, 1) = K
12 7 9E-1250-004 NV-Z627PD - 7 9E-1250-004 NV-Z627PD - Darr(K, 2) = Arr(I, 1)
13 8 9E-1166-004 NV-D035PC D 8 9E-1166-004 NV-D035PC D Darr(K, 3) = Arr(I, 2)
14 9 95-1382-004 NV-Y919PB G 9 95-1382-004 NV-Y919PB G Darr(K, 4) = Arr(I, 3)
15 10 9D-1152-004 NV-Y107P G 1 1 10 9D-1152-004 NV-Y107P G 1 1 Darr(K, 5) = Arr(I, 4)
16 11 9A-1319-004 NV-Y911P G 11 9A-1319-004 NV-Y911P G Darr(K, 6) = Arr(I, 7)
17 12 91-1772-004 NV-Y876PC M 5 12 91-1772-004 NV-Y876PC M 5 Darr(K, 7) = Arr(I, 8)
18 13 94-1610-004 IV-702-MTS2 K 1 1 13 94-1610-004 IV-702-MTS2 K 1 1 Darr(K, 8) = Arr(I, 6)
19 14 9D-1224-004 NV-Z314P M 14 9D-1224-004 NV-Z314P M Darr(K, 9) = Arr(I, 5)
20 15 9A-1083-004 IV-802-MAK H 15 9A-1083-004 IV-802-MAK H Next
21 Range("L6").Resize(K, 9) = Darr
22 End Sub
23 Bảng 3
24
25 STT DWG TYPE Rev 1 2 3 4 5
26 1 95-1637-004 NV-Y712PB M 1 2 3 4 5 Private Sub CommandButton2_Click()
27 2 9C-1650-004 NV-Z262P G 2 Dim Arr(), Darr(1 To 65536, 1 To 9), I As Long
28 3 9D-1423-004 NV-D227PJA F 1 1 4 5 Dim J As Long, K As Long, n As Long
29 4 9A-1721-004 NV-Y812P H 5 Arr = Range("C6", [C65536].End(xlUp)).Resize(, 8).Value2
30 5 9A-1748-004 NV-Y934PB E 4 4 For I = 1 To UBound(Arr, 1)
31 6 9A-1150-004 NV-Y855P M 2 6 K=K+1
32 7 9E-1250-004 NV-Z627PD - For J = 2 To 9
33 8 9E-1166-004 NV-D035PC D n = Choose(J - 1, 1, 2, 3, 4, 7, 8, 6, 5)
34 9 95-1382-004 NV-Y919PB G Darr(I, J) = Arr(I, n)
35 10 9D-1152-004 NV-Y107P G 1 1 Next
36 11 9A-1319-004 NV-Y911P G Darr(K, 1) = K
37 12 91-1772-004 NV-Y876PC M 5 Next
38 13 94-1610-004 IV-702-MTS2 K 1 1 Range("L26").Resize(I, 9) = Darr
39 14 9D-1224-004 NV-Z314P M End Sub
40 15 9A-1083-004 IV-802-MAK H
41
42

5
A B C D E F G H I J K L M N O P Q R S
3 Bảng 1 Bảng 2
4
5 STT DWG TYPE Quantity STT DWG TYPE Quantity Private Sub CommandButton1_Click()
6 1 95-1637-004
NV-Y712PB 1 1 95-1637-004 NV-Y712PB 1 Dim Arr(), Darr(1 To 65536, 1 To 4)
7 2 9C-1650-004
NV-Z262P 2 2 9C-1650-004 NV-Z262P 1 Dim I As Long, K As Long, J As Long
8 3 9D-1423-004
NV-D227PJA 1 3 9C-1650-004 NV-Z262P 1 Arr = Range("C6", [C65536].End(xlUp)).Resize(, 3).Value2
9 4 9A-1721-004
NV-Y812P 4 9D-1423-004 NV-D227PJA 1 For I = 1 To UBound(Arr, 1)
10 5 9A-1748-004
NV-Y934PB 3 5 9A-1748-004 NV-Y934PB 1 For J = 1 To Arr(I, 3)
11 6 9A-1150-004
NV-Y855P 3 6 9A-1748-004 NV-Y934PB 1 K=K+1
12 7 9E-1250-004
NV-Z627PD 2 7 9A-1748-004 NV-Y934PB 1 Darr(K, 1) = K
13 8 9E-1166-004
NV-D035PC 1 8 9A-1150-004 NV-Y855P 1 Darr(K, 2) = Arr(I, 1)
14 9 95-1382-004
NV-Y919PB 9 9A-1150-004 NV-Y855P 1 Darr(K, 3) = Arr(I, 2)
15 10 9A-1150-004 NV-Y855P 1 Darr(K, 4) = 1
16 11 9E-1250-004 NV-Z627PD 1 Next
17 12 9E-1250-004 NV-Z627PD 1 Next
18 13 9E-1166-004 NV-D035PC 1 Range("H6").Resize(K, 4) = Darr
19 End Sub
20
21
22
23
24 Bảng 3
25 STT DWG TYPE Quantity Private Sub CommandButton2_Click()
26 1 95-1637-004 NV-Y712PB 1 Dim Arr(), Darr(1 To 65536, 1 To 4), Num As Long
27 2 9C-1650-004 NV-Z262P 1 Dim I As Long, K As Long, J As Long
28 3 9C-1650-004 NV-Z262P 1 Arr = Range("C6", [C65536].End(xlUp)).Resize(, 3).Value2
29 4 9D-1423-004 NV-D227PJA 1 For I = 1 To UBound(Arr, 1)
30 5 9A-1721-004 NV-Y812P 1 Num = IIf(Arr(I, 3) = Empty, 1, Arr(I, 3))
31 6 9A-1748-004 NV-Y934PB 1 For J = 1 To Num
32 7 9A-1748-004 NV-Y934PB 1 K=K+1
33 8 9A-1748-004 NV-Y934PB 1 Darr(K, 1) = K
34 9 9A-1150-004 NV-Y855P 1 Darr(K, 2) = Arr(I, 1)
35 10 9A-1150-004 NV-Y855P 1 Darr(K, 3) = Arr(I, 2)
36 11 9A-1150-004 NV-Y855P 1 Darr(K, 4) = 1
37 12 9E-1250-004 NV-Z627PD 1 Next
38 13 9E-1250-004 NV-Z627PD 1 Next
39 14 9E-1166-004 NV-D035PC 1 Range("H26").Resize(K, 4) = Darr
40 15 95-1382-004 NV-Y919PB 1 End Sub
41
42
43
44

5
A B C D E F G H I J K L M N O P Q R S T
5 Bảng 1 Bảng 2
6
7 STT DWG TYPE Quantity STT DWG TYPE Quantity Private Sub CommandButton1_Click()
8 1 95-1637-004 NV-Y712PB 2 1 95-1637-004 NV-Y712PB 2 Dim Arr(), Darr(1 To 65536, 1 To 5)
9 2 9C-1650-004 NV-Z262P 1 2 9C-1650-004 NV-Z262P 1 Dim I As Long, K As Long
10 3 9D-1423-004 NV-D227PJA 5 3 9D-1423-004 NV-D227PJA 5 Arr = Range("C8", [C65536].End(xlUp)).Resize(, 3).Value
11 4 9A-1721-004 NV-Y812P 4 9A-1748-004 NV-Y934PB 2 For I = 1 To UBound(Arr, 1)
12 5 9A-1748-004 NV-Y934PB 2 5 9E-1250-004 NV-Z627PD 1 If Arr(I, 3) > 0 Then
13 6 9A-1150-004 NV-Y855P 6 9E-1166-004 NV-D035PC 5 K=K+1
14 7 9E-1250-004 NV-Z627PD 1 Darr(K, 1) = K
15 8 9E-1166-004 NV-D035PC 5 Darr(K, 2) = Arr(I, 1)
16 9 95-1382-004 NV-Y919PB Darr(K, 3) = Arr(I, 2)
17 Darr(K, 4) = Arr(I, 3)
18 End If
19 Next
20 Range("I8").Resize(K, 4) = Darr
21 End Sub
22
23 Bảng 3
24
25 STT DWG TYPE Quantity Private Sub CommandButton2_Click()
26 1 95-1637-004 NV-Y712PB 2 Dim Arr(), Darr(), I As Long, K As Long
27 2 9C-1650-004 NV-Z262P 1 Arr = Range("C8", [C65536].End(xlUp)).Resize(, 3).Value
28 3 9D-1423-004 NV-D227PJA 5 ReDim Darr(1 To UBound(Arr, 1), 1 To 5)
29 4 9A-1748-004 NV-Y934PB 2 For I = 1 To UBound(Arr, 1)
30 5 9E-1250-004 NV-Z627PD 1 If Arr(I, 3) <> Empty Then
31 6 9E-1166-004 NV-D035PC 5 K=K+1
32 Darr(K, 1) = K
33 Darr(K, 2) = Arr(I, 1)
34 Darr(K, 3) = Arr(I, 2)
35 Darr(K, 4) = Arr(I, 3)
36 End If
37 Next
38 Range("I26").Resize(K, 4) = Darr
39 End Sub
40

6
A B C D E F G H I J K L M N O P Q R S T U V W
4
5 Bảng 1
6 A B C Bảng 2
7 A1 B1 C1
8 STT DWG TYPE Rev 1 2 DWG TYPE Rev Cái Private Sub CommandButton1_Click()
9 1 95-1637-004 NV-Y712PB M 1 A A1 95-1637-004 NV-Y712PB M 1 Dim Arr(), Darr(), I As Long, J As Long, k As Long, x As Long
10 2 9C-1650-004 NV-Z262P G 5 A A1 9A-1150-004 NV-Y855P M 2 Arr = Range("C6", [C1000].End(xlUp)).Resize(, 6).Value
11 3 9D-1423-004 NV-D227PJA F 6 A A1 9D-1152-004 NV-Y107P G 1 ReDim Darr(1 To UBound(Arr, 1), 1 To 7)
12 4 9A-1721-004 NV-Y812P H 4 B B1 9C-1650-004 NV-Z262P G 5 For J = 4 To UBound(Arr, 2)
13 5 9A-1748-004 NV-Y934PB E B B1 9A-1721-004 NV-Y812P H 4 For I = 4 To UBound(Arr, 1)
14 6 9A-1150-004 NV-Y855P M 2 B B1 95-1382-004 NV-Y919PB G 7 If Arr(I, J) > 0 Then
15 7 9E-1250-004 NV-Z627PD - 6 C C1 9D-1423-004 NV-D227PJA F 6 k=k+1
16 8 9E-1166-004 NV-D035PC D C C1 9E-1250-004 NV-Z627PD - 6 For x = 1 To 2
17 9 95-1382-004 NV-Y919PB G 7 4 C C1 95-1382-004 NV-Y919PB G 4 Darr(k, x) = Arr(x, J)
18 10 9D-1152-004 NV-Y107P G 1 C C1 91-1772-004 NV-Y876PC M 2 Next
19 11 9A-1319-004 NV-Y911P G Darr(k, 3) = Arr(I, 1)
20 12 91-1772-004 NV-Y876PC M 2 Darr(k, 4) = Arr(I, 2)
21 Darr(k, 5) = Arr(I, 3)
22 Darr(k, 6) = Arr(I, J)
23 End If
24 Next
25 Next
26 Range("K9").Resize(k, 6) = Darr
27 Bảng 3 End Sub
28
29 1 2 Rev DWG TYPE Cái Private Sub CommandButton2_Click()
30 A A1 M 95-1637-004 NV-Y712PB 1 Dim Arr(), Darr(), I As Long, J As Long, k As Long, x As Long
31 A A1 M 9A-1150-004 NV-Y855P 2 Arr = Range("C6", [C1000].End(xlUp)).Resize(, 6).Value
32 A A1 G 9D-1152-004 NV-Y107P 1 ReDim Darr(1 To UBound(Arr, 1), 1 To 7)
33 B B1 G 9C-1650-004 NV-Z262P 5 For J = 4 To UBound(Arr, 2)
34 B B1 H 9A-1721-004 NV-Y812P 4 For I = 4 To UBound(Arr, 1)
35 B B1 G 95-1382-004 NV-Y919PB 7 If Arr(I, J) > 0 Then
36 C C1 F 9D-1423-004 NV-D227PJA 6 k=k+1
37 C C1 - 9E-1250-004 NV-Z627PD 6 Darr(k, 1) = Arr(1, J)
38 C C1 G 95-1382-004 NV-Y919PB 4 Darr(k, 2) = Arr(2, J)
39 C C1 M 91-1772-004 NV-Y876PC 2 Darr(k, 3) = Arr(I, 3)
40 Darr(k, 4) = Arr(I, 1)
41 Darr(k, 5) = Arr(I, 2)
42 Darr(k, 6) = Arr(I, J)
43 End If
44 Next
45 Next
46 Range("K30").Resize(k, 6) = Darr
47 End Sub
48

7
A B C D E FG H I J K L M N O P Q R S T U V
3
4 Bảng 1 Bảng 2 Bảng 3
5
6 DWG TYPE Rev Quantity Quantity 360 Quantity 600
7 95-1637-004 NV-Y712PB M 192
8 9C-1650-004 NV-Z262P G 600 DWG TYPE Rev DWG TYPE Rev Private Sub CommandButton1_Click()
9 9D-1423-004 NV-D227PJA F 600 9A-1721-004 NV-Y812P H 9C-1650-004 NV-Z262P G Dim Arr(), Darr1(), Darr2(), I As Long, J As Long, K As Long, M As Long
10 9A-1721-004 NV-Y812P H 360 9A-1150-004 NV-Y855P M 9D-1423-004 NV-D227PJA F On Error Resume Next
11 9A-1748-004 NV-Y934PB E 552 9E-1250-004 NV-Z627PD - 9D-1152-004 NV-Y107P G Arr = Range("B7", [B65536].End(xlUp)).Resize(, 4).Value
12 9A-1150-004 NV-Y855P M 360 95-1382-004 NV-Y919PB G 94-1610-004 IV-702-MTS2 K ReDim Darr1(1 To UBound(Arr, 1), 1 To 3)
13 9E-1250-004 NV-Z627PD - 360 9A-1083-004 IV-802-MAK H ReDim Darr2(1 To UBound(Arr, 1), 1 To 3)
14 9E-1166-004 NV-D035PC D 888 9A-1334-004 NV-Y935P J For I = 1 To UBound(Arr, 1)
15 95-1382-004 NV-Y919PB G 360 If Arr(I, 4) = [I6] Then
16 9D-1152-004 NV-Y107P G 600 K=K+1
17 9A-1319-004 NV-Y911P G 528 Darr1(K, 1) = Arr(I, 1)
18 91-1772-004 NV-Y876PC M 528 Darr1(K, 2) = Arr(I, 2)
19 94-1610-004 IV-702-MTS2 K 600 Darr1(K, 3) = Arr(I, 3)
20 9D-1224-004 NV-Z314P M 1320 ElseIf Arr(I, 4) = [M6] Then
21 9A-1083-004 IV-802-MAK H 600 M=M+1
22 9A-1334-004 NV-Y935P J 600 Darr2(M, 1) = Arr(I, 1)
23 92-1738-004 NV-Y896PB M 3960 Darr2(M, 2) = Arr(I, 2)
24 9B-1995-004 NV-Y133P F 576 Darr2(M, 3) = Arr(I, 3)
25 End If
26 Next
27 Range("H9").Resize(K, 3) = Darr1
28 Range("L9").Resize(M, 3) = Darr2
29 End Sub
30
31
32
33
34
35
36
37
38
39
40
41
42
43

8
A B C D E F G H I J K L M N O P Q R S T
4
5 Bảng 1 Bảng 2
6
7 DWG TYPE Rev Quantity DWG TYPE Rev Quantity Private Sub CommandButton1_Click()
8 95-1637-004 NV-Y712PB M 192 95-1637-004 NV-Y712PB M 192 Dim Arr(), Darr(), Dic As Object, i As Long, j As Long
9 9C-1650-004 NV-Z262P G 528 9C-1650-004 NV-Z262P G 528 Arr = Range("B8", [B65536].End(xlUp)).Resize(, 4).Value
10 9A-1721-004 NV-Y812P H 240 9A-1721-004 NV-Y812P H 240 ReDim Darr(1 To UBound(Arr, 1), 1 To UBound(Arr, 2))
11 9A-1721-004 NV-Y812P H 240 9A-1748-004 NV-Y934PB E 552 Set Dic = CreateObject("Scripting.Dictionary")
12 9A-1748-004 NV-Y934PB E 552 9A-1150-004 NV-Y855P M 360 For i = 1 To UBound(Arr, 1)
13 9A-1150-004 NV-Y855P M 360 9A-1319-004 NV-Y911P G 528 If Not Dic.exists(Arr(i, 1)) Then
14 9A-1150-004 NV-Y855P M 360 9A-1083-004 IV-802-MAK H 960 j=j+1
15 9A-1319-004 NV-Y911P G 528 Dic.Add Arr(i, 1), j
16 9C-1650-004 NV-Z262P G 528 Darr(j, 1) = Arr(i, 1)
17 9A-1721-004 NV-Y812P H 240 Darr(j, 2) = Arr(i, 2)
18 95-1637-004 NV-Y712PB M 192 Darr(j, 3) = Arr(i, 3)
19 9A-1083-004 IV-802-MAK H 960 Darr(j, 4) = Arr(i, 4)
20 95-1637-004 NV-Y712PB M 192 End If
21 Next i
22 Range("H8").Resize(j, UBound(Arr, 2)).Value = Darr
23 End Sub
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

9
A B C D E F G H I J K L M N O P Q R S T U

SỐ NGƯỜI SỬ DỤNG SỐ
BỘ PHẬN SỐ CUỐN SỐ PHIẾU SỐ PHIẾU
LƯỢNG NHẬN THỰC TẾ CUỐN
3 NO.

4 1 NV-Y712PB 2 1 --> 2 1 --> 100 A 2 2 1 --> 2 Private Sub CommandButton1_Click()

5 2 NV-Z262P 5 3 --> 7 101 --> 350 B 3 5 3 --> 7 Dim Arr, Box, i, j, Phieu, Nhap

6 3 NV-D227PJA 3 8 --> 10 351 --> 500 C 4 3 8 --> 10 Arr = Range("B4", [B15].End(xlUp)).Resize(, 15).Value

7 4 NV-Y812P 9 11 --> 19 501 --> 950 D 8 9 11 --> 19 For i = 1 To UBound(Arr, 1)

8 5 NV-Y934PB 4 20 --> 23 951 --> 1150 E 3 4 20 --> 23 If Arr(i, 2) > 0 Then

9 6 NV-Y855P 19 24 --> 42 1151 --> 2100 F 16 7 24 --> 30 Arr(i, 3) = Box + 1

10 7 NV-Z627PD 27 43 --> 69 2101 --> 3450 G 25 7 31 --> 37 Arr(i, 4) = "-->"

11 8 NV-D035PC 1 70 --> 70 3451 --> 3500 H 1 7 38 --> 44 Box = Box + Arr(i, 2)

12 9 NV-Y919PB 1 71 --> 71 3501 --> 3550 J 0 7 45 --> 51 Arr(i, 5) = Box

13 10 NV-Y107P 1 72 --> 72 3551 --> 3600 K 0 7 52 --> 58 Arr(i, 6) = Phieu + 1

14 72 62 7 59 --> 65 Arr(i, 7) = "-->"

15 7 66 --> 72 Phieu = Arr(i, 2) * 50 + Phieu


16 Arr(i, 8) = Arr(i, 5) * 50
17 End If
18 Next
19 Range("B4").Resize(i - 1, 8) = Arr
20 Arr = Range("L4:O15").Value
21 For i = 1 To UBound(Arr, 1)
22 If Arr(i, 1) > 0 Then
23 Arr(i, 2) = Nhap + 1
24 Arr(i, 3) = "-->"
25 Nhap = Nhap + Arr(i, 1)
26 Arr(i, 4) = Nhap
27 End If
28 Next
29 Range("L4").Resize(i - 1, 4) = Arr
30 End Sub
31
32
33

10
G H I J K L M N O P Q R S T U V W X Y Z AA
4
5 11
6 NV-Y712PB M 240 6:00 6:22 6:00 6:22 22 Private Sub CommandButton1_Click()
7 NV-Z262P G 120 6:22 6:33 6:22 6:33 11 Application.ScreenUpdating = False
8 NV-D227PJA F 2,760 6:33 10:44 6:33 11:04 251 Dim sArr(), I As Long
9 NV-Y812P H 2,280 10:44 14:11 11:04 14:24 207 Dim StartTime, EndTime
10 NV-Y934PB E 1,440 14:11 16:22 14:24 16:29 131 On Error Resume Next
11 NV-Y855P M 120 16:22 16:33 16:29 16:40 11 Range("J6:K1000").ClearContents
12 NV-Z627PD - 1,320 16:33 18:33 16:40 19:05 120 sArr = Range("G6", [G65000].End(xlUp)).Resize(, 6).Value
13 NV-D035PC D 168 18:33 18:48 19:05 19:20 15 StartTime = TimeSerial(6, 0, 0)
14 NV-Y919PB G 360 18:48 19:21 19:20 19:53 33 EndTime = StartTime
15 NV-Y107P G 1,440 19:21 21:32 19:53 21:58 131 For I = 1 To UBound(sArr, 1)
16 0 If sArr(I, 5) <> Empty Then
17 0 EndTime = EndTime + TimeSerial(0, Round((sArr(I, 3) / [I5]), 0), 0)
18 0 StartTime = StartTime + TimeSerial(0, Round((sArr(I, 3) / [I5]), 0), 0)
19 0 Else
20 0 sArr(I, 5) = StartTime
21 sArr(I, 6) = StartTime + TimeSerial(0, Round((sArr(I, 3) / [I5]), 0), 0)
22 StartTime = sArr(I, 6)
23 End If
24 Next I
25 [G6].Resize(I - 1, 6) = sArr
26 Application.ScreenUpdating = True
27 End Sub
28
29
30
31
32

11
A B C D E F G H I J K L M N O P Q R S T U V W X Y
4
5 Bảng 1
6
7 STT TYPE Rev Quantity 1 5 4 2 3 NV-Z262P Private Sub CommandButton1_Click()
8 1 NV-Y712PB M 192 1 5 4 2 3 1 10 10 Dim sArr(), dArr(), I As Long, J As Long, DK As String, Dic As Object
9 2 NV-Z262P G 528 10 15 20 5 2 5 15 15 Dim Tem As String, CoL As Long, Ws As Worksheet
10 3 NV-D227PJA F 1800 1 5 4 1 4 20 20 Set Dic = CreateObject("Scripting.Dictionary")
11 4 NV-Y812P H 240 5 2 5 5 sArr = Range([M8], [M8].End(xlDown)).Value
12 5 NV-Y934PB E 552 4 4 3 2 2 DK = [N7].Value
13 6 NV-Y855P M 360 2 6 ReDim dArr(1 To UBound(sArr, 1), 1 To 1)
14 7 NV-Z627PD - 360 For I = 1 To UBound(sArr, 1)
15 8 NV-D035PC D 888 Tem = sArr(I, 1)
16 9 NV-Y919PB G 240 If Not Dic.Exists(Tem) Then Dic.Add Tem, I
17 10 NV-Y107P G 1080 1 1 Next I
18 11 NV-Y911P G 528 With Sheet12
19 12 NV-Y876PC M 528 5 sArr = .Range(.[C7], .[C65536].End(xlUp)).Resize(, 8).Value
20 13 IV-702-MTS2 K 600 1 1 End With
21 14 NV-Z314P M 1320 For I = 2 To UBound(sArr, 1)
22 15 IV-802-MAK H 960 If sArr(I, 1) = DK Then
23 For J = 4 To UBound(sArr, 2)
24 Tem = sArr(1, J)
25 If Dic.Exists(Tem) Then dArr(Dic.Item(Tem), 1) = sArr(I, J)
26 Next J
27 End If
28 Next I
29 [O8:O50000].ClearContents
30 [O8].Resize(UBound(dArr, 1)) = dArr
31 Set Dic = Nothing
32 End Sub
33
34
35
36

12
A B C D E F G H I J K L M N O P Q R S T U V W X Y
4
5 Bảng 1
6
7 STT TYPE Rev Quantity 1 5 4 2 3 NV-Z262P NV-Y812P NV-Y855PNV-D035PC
8 1 NV-Y712PB M 192 1 5 4 2 3 1 10 - 2 5
9 2 NV-Z262P G 528 10 15 20 5 2 2 5 5 - 4 Private Sub CommandButton1_Click()
10 3 NV-D227PJA F 1800 1 5 4 1 3 2 - - 2 Dim Rws As Object, Col As Object, sArr(), dArr(), tArr()
11 4 NV-Y812P H 240 5 4 20 - 6 6 Dim I As Long, j As Long, C As Long
12 5 NV-Y934PB E 552 4 4 5 15 - - 1 Dim nRws As Long, nCol As Long, iRws As Long, jCol As Long
13 6 NV-Y855P M 360 2 6 Set Rws = CreateObject("Scripting.Dictionary")
14 7 NV-Z627PD - 360 Set Col = CreateObject("Scripting.Dictionary")
15 8 NV-D035PC D 888 5 1 6 4 2 sArr = Range([M8], [M8].End(xlDown)).Value
16 9 NV-Y919PB G 240 tArr = Range([N7], [N7].End(xlToRight)).Value
17 10 NV-Y107P G 1080 1 1 iRws = UBound(sArr, 1)
18 11 NV-Y911P G 528 jCol = UBound(tArr, 2)
19 12 NV-Y876PC M 528 5 ReDim dArr(1 To iRws, 1 To jCol)
20 13 IV-702-MTS2 K 600 1 1 For I = 1 To iRws
21 14 NV-Z314P M 1320 If Not Rws.Exists(sArr(I, 1)) Then Rws.Add sArr(I, 1), I
22 15 IV-802-MAK H 960 Next I
23 For j = 1 To jCol
24 If Not Col.Exists(tArr(1, j)) Then Col.Add tArr(1, j), j
25 Next j
26 With Sheet13
27 C = .[F7].End(xlToRight).Column - 1
28 sArr = .Range(.[C7], .[C65536].End(xlUp)).Resize(, C).Value
29 For I = 2 To UBound(sArr, 1)
30 For j = 4 To C
31 If Rws.Exists(sArr(1, j)) Then
32 If Col.Exists(sArr(I, 1)) Then
33 nRws = Rws.Item(sArr(1, j))
34 nCol = Col.Item(sArr(I, 1))
35 dArr(nRws, nCol) = dArr(nRws, nCol) + sArr(I, j)
36 End If
37 End If
38 Next j
39 Next I
40 End With
41 [N8:IT50000].ClearContents
42 [N8].Resize(iRws, jCol) = dArr
43 Set Rws = Nothing
44 Set Col = Nothing
45 End Sub
46
47

13
A B C D E F G H I J K L
4
5 Chon duong dan D:\DWG\1992 Chọn thư mục con Lay Link
6
7
Kích thước Click vào
STT Tên File Loại File Ngày tạo File
8 (kb) Link để mở
9 1 NVM No.1992.xls 31 Microsoft Excel 97-2003 Worksheet 21/11/2014 10:15 Click mo File
10 2 PS-K-28359.pdf 2738 Adobe Acrobat Document 21/11/2014 10:16 Click mo File PS-K-28359.pdf
11 3 PS-K-28360.pdf 1699 Adobe Acrobat Document 21/11/2014 10:17 Click mo File PS-K-28360.pdf
12 4 PS-K-28362.pdf 578 Adobe Acrobat Document 21/11/2014 10:17 Click mo File PS-K-28362.pdf
13 5 PS-K-28363.pdf 544 Adobe Acrobat Document 21/11/2014 10:17 Click mo File PS-K-28363.pdf
14 6 PS-K-28364.pdf 963 Adobe Acrobat Document 21/11/2014 10:17 Click mo File PS-K-28364.pdf
15 7 PS-K-28365.pdf 612 Adobe Acrobat Document 21/11/2014 10:17 Click mo File PS-K-28365.pdf
16 8 PS-K-28366.pdf 1008 Adobe Acrobat Document 21/11/2014 10:17 Click mo File PS-K-28366.pdf
17 9 PS-K-28367.pdf 551 Adobe Acrobat Document 21/11/2014 10:17 Click mo File
18 10 PS-K-28368.pdf 527 Adobe Acrobat Document 21/11/2014 10:17 Click mo File
19 11 PS-K-28369.pdf 562 Adobe Acrobat Document 21/11/2014 10:17 Click mo File
20 12 PS-K-28370.pdf 2265 Adobe Acrobat Document 21/11/2014 10:17 Click mo File
21
22
23 Private Sub CommandButton1_Click()
24 With Application.FileDialog(msoFileDialogFolderPicker)
25 If .Show Then
26 Sheet15.Range("D5") = .SelectedItems(1)
27 End If
28 End With
29 End Sub
30
31 Private Sub CommandButton2_Click()
32 Dim Arr, i As Long, k As Long, Count As Long
33 Dim Dic As Object
34 On Error Resume Next
35 Set Dic = CreateObject("Scripting.FileSystemObject")
36 Arr = FilesFoldersList(Sheet15.Range("D5"), True, "*" & Sheet15.Range("I9") & "*.*", Sheet15.CheckBox1)
37 Range("B9:G65536").Clear
38 k = 1 - LBound(Arr)
39 For i = LBound(Arr) To UBound(Arr)
40 With Range("B9").Offset(i)
41 .Offset(, 0) = i + k
42 .Offset(, 1) = Dic.GetFile(Arr(i)).Name
43 .Offset(, 2) = Int(Dic.GetFile(Arr(i)).Size / 1024)
44 .Offset(, 3) = Dic.GetFile(Arr(i)).Type
45 .Offset(, 4) = Dic.GetFile(Arr(i)).DateCreated
46 .Offset(, 5).Hyperlinks.Add .Offset(, 5), Arr(i), , , "Click mo File"
47 End With
48 Next
49 End Sub
50

14
A B C D E F G H I J K L M N O P Q R S T U V W
4
5 Bảng 1 Bảng 2
6
7 STT TYPE Rev 1 2 3 TYPE Rev Total Private Sub CommandButton1_Click()
8 1 NV-Y712PB M 5 1 NV-Y712PB M 23 Dim Arr(), Darr(1 To 65536, 1 To 3), I As Long
9 2 NV-Z262P G 4 NV-Z262P G 31 Dim n As Long, Sum As Double, K As Long
10 3 NV-D227PJA F 2 1 NV-D227PJA F 31 Arr = Range("C8", [C65536].End(xlUp)).Resize(, 5).Value
11 4 NV-Y812P H 5 3 NV-Y812P H 17 With CreateObject("Scripting.Dictionary")
12 5 NV-Y934PB E 4 7 NV-Y934PB E 59 For I = 1 To UBound(Arr, 1)
13 6 NV-Y712PB M 4 Sum = Arr(I, 3) + Arr(I, 4) + Arr(I, 5)
14 7 NV-Z262P G 9 5 If Not .Exists(Arr(I, 1)) Then
15 8 NV-D227PJA F 11 5 K=K+1
16 9 NV-Y812P H 1 1 .Add Arr(I, 1), K
17 10 NV-Y934PB E 12 8 Darr(K, 1) = Arr(I, 1)
18 11 NV-Y712PB M 5 Darr(K, 2) = Arr(I, 2)
19 12 NV-Z262P G 2 6 Darr(K, 3) = Sum
20 13 NV-D227PJA F 5 4 Else
21 14 NV-Y812P H 2 4 n = .Item(Arr(I, 1)) Bỏ "n" thay thế Darr(n, 3)
22 15 NV-Y934PB E 9 Darr(n, 3) = Darr(n, 3) + Sum Thành Darr(.Item(Tem), 3)
23 16 NV-Y712PB M 5 3 End If
24 17 NV-Z262P G 5 Next
25 18 NV-D227PJA F 1 2 End With
26 19 NV-Y812P H 1 Range("J8").Resize(K, 3) = Darr
27 20 NV-Y934PB E 2 8 9 End Sub
28
29 Bảng 3 TYPE Rev Total Private Sub CommandButton2_Click()
30 NV-Y712PB M 23 Dim sArr(), Darr(), I As Long, J As Long, K As Long
31 NV-Z262P G 31 Dim Dic As Object, Tem As String
32 NV-D227PJA F 31 Set Dic = CreateObject("Scripting.Dictionary")
33 NV-Y812P H 17 sArr = Range("C8", [C65536].End(xlUp)).Resize(, 5).Value
34 NV-Y934PB E 59 ReDim Darr(1 To UBound(sArr, 1), 1 To 3)
35 For I = 1 To UBound(sArr, 1)
36 Tem = sArr(I, 1) & sArr(I, 2)
37 If Not Dic.Exists(Tem) Then
38 K=K+1
39 Dic.Add Tem, K
40 Darr(K, 1) = sArr(I, 1)
41 Darr(K, 2) = sArr(I, 2)
42 For J = 3 To 5
43 Darr(K, 3) = sArr(I, 3) + sArr(I, 4) + sArr(I, 5)
44 Next J
45 Else
46 Darr(Dic.Item(Tem), 3) = Darr(Dic.Item(Tem), 3) + sArr(I, 3) + sArr(I, 4) + sArr(I, 5)
47 End If
48 Next I
49 [J30].Resize(K, 3) = Darr
50 Set Dic = Nothing
51 End Sub

15
A B C D E F G H I J K L M N O P Q R S T U V W X Y
4
5 Bảng 1 Bảng 2
6
7 STT TYPE Rev A B C D E TYPE Rev Quantity A B C Private Sub CommandButton1_Click()
8 1 NV-Y712PB M 1 2 1 1 NV-Y712PB M 192 192 - 384 Dim Arr(), I As Long, J As Long, Rng As Range
9 2 NV-Z262P G 4 NV-Z262P G 528 - 2,112 - Range("O8:Q20").ClearContents
10 3 NV-D227PJA F 2 5 3 1 NV-D227PJA F 1,800 3,600 - 9,000 Arr = Range("L8", [L65536].End(xlUp)).Resize(, 6).Value
11 4 NV-Y812P H 5 3 4 NV-Y812P H 240 1,200 720 960 For I = 1 To UBound(Arr, 1)
12 5 NV-Y934PB E 4 4 7 NV-Y934PB E 552 2,208 - - Set Rng = [C:C].Find(Arr(I, 1), , , xlWhole)
13 6 NV-Y855P M 4 9 NV-Y855P M 360 - 1,440 3,240 If Not Rng Is Nothing Then
14 7 NV-Z627PD - 9 5 5 5 NV-Z627PD - 360 3,240 - 1,800 For J = 4 To UBound(Arr, 2)
15 8 NV-D035PC D 11 5 5 3 Arr(I, J) = Rng.Offset(, J - 2) * Arr(I, 3)
16 9 NV-Y919PB G 1 1 4 Next
17 10 NV-Y107P G 12 8 4 End If
18 11 NV-Y911P G 5 2 9 Next
19 12 NV-Y876PC M 2 2 6 Range("L8").Resize(I - 1, 6) = Arr
20 13 IV-702-MTS2 K 5 5 End Sub
21 14 NV-Z314P M 2 2 Bảng 3
22 15 IV-802-MAK H
23 16 NV-Y935P J 5 5 TYPE Rev Quantity C E A Private Sub CommandButton2_Click()
24 17 NV-Y896PB M 5 5 NV-Y911P G 888 1,776 - - Dim Arr(), I As Long, J As Long, C As Long, Rng As Range
25 18 NV-Y133P F 1 1 2 NV-Y876PC M 240 480 1,440 480 Range("O24:Q40").ClearContents
26 19 NV-Y795P F 1 IV-702-MTS2 K 1,080 5,400 - 5,400 Arr = Range("L23", [L65536].End(xlUp)).Resize(, 6).Value
27 20 NV-Y243P E 2 9 NV-Z314P M 528 1,056 - 1,056 For I = 2 To UBound(Arr, 1)
28 IV-802-MAK H 528 - - - Set Rng = [C:C].Find(Arr(I, 1), , , xlWhole)
29 NV-Y935P J 600 3,000 - 3,000 If Not Rng Is Nothing Then
30 NV-Y911P G 1,320 2,640 - - For J = 4 To UBound(Arr, 2)
31 C = Rows(7).Find(Arr(1, J), , , 1).Column - 3
32 Arr(I, J) = Rng.Offset(, C) * Arr(I, 3)
33 Next
34 End If
35 Next
36 Range("L23").Resize(I - 1, 6) = Arr
37 End Sub
38
39
40

16
A B C D E F G H I J K L M N O P Q R S T U V W X Y
4
5 Bảng 1 Bảng 2
6
7 STT TYPE Rev A B C D E TYPE Rev Quantity B D E Private Sub CommandButton1_Click()
8 1 NV-Y712PB M 1 2 1 1 NV-Y712PB M 192 - 192 192 Dim Arr(), I As Long, j As Long, Rng As Range
9 2 NV-Z262P G 4 NV-Z262P G 528 2,112 - - Dim Dic As Object, Tem, C As Long
10 3 NV-D227PJA F 2 5 3 1 NV-D227PJA F 1,800 - 5,400 1,800 Set Dic = CreateObject("scripting.dictionary")
11 4 NV-Y812P H 5 3 4 NV-Y812P H 240 720 - - Range("O8:Q30").ClearContents
12 5 NV-Y934PB E 4 4 7 NV-Y934PB E 552 - 2,208 3,864 Tem = Range("E7", [E7].End(xlToRight)).Value
13 6 NV-Y855P M 4 9 NV-Y712PB M 360 - 360 360 For j = 1 To UBound(Tem, 2)
14 7 NV-Z627PD - 9 5 5 5 NV-Z262P G 360 1,440 - - Dic.Add Tem(1, j), j
15 8 NV-D035PC D 11 5 5 3 NV-D227PJA F 888 - 2,664 888 Next
16 9 NV-Y919PB G 1 1 4 NV-Y812P H 240 720 - - Arr = Range("L7", [L65536].End(xlUp)).Resize(, 6).Value
17 10 NV-Y107P G 12 8 4 NV-Y934PB E 1,080 - 4,320 7,560 For I = 2 To UBound(Arr, 1)
18 11 NV-Y911P G 5 2 9 NV-Y712PB M 528 - 528 528 Set Rng = [C:C].Find(Arr(I, 1), , , xlWhole)
19 12 NV-Y876PC M 2 2 6 NV-Z262P G 528 2,112 - - If Not Rng Is Nothing Then
20 13 IV-702-MTS2 K 5 5 NV-D227PJA F 600 - 1,800 600 For j = 4 To UBound(Arr, 2)
21 14 NV-Z314P M 2 2 NV-Y812P H 1,320 3,960 - - If Dic.Exists(Arr(1, j)) Then
22 15 IV-802-MAK H NV-Y934PB E 120 - 480 840 C = Dic.Item(Arr(1, j))
23 16 NV-Y935P J 5 5 Arr(I, j) = Rng.Offset(, C + 1) * Arr(I, 3)
24 17 NV-Y896PB M 5 5 End If
25 18 NV-Y133P F 1 1 2 Next
26 19 NV-Y795P F 1 End If
27 20 NV-Y243P E 2 9 Next
28 Range("L7").Resize(I - 1, 6) = Arr
29 End Sub
30
31
32
33
34
35
36

17
A B C D E F G H I J K L M N O P Q R S T U V W X
4
5 Bảng 1 Bảng 2
6 1 2 3 4 5 6 7 8
7 STT DWG TYPE Rev Quantity B C D E STT TYPE Rev DWG Quantity Private Sub CommandButton1_Click()
8 1 95-1637-004 NV-Y712PB M 192 1 7 1 1 1 NV-Y712PB M 95-1637-004 14 Dim sArr(), dArr(), I As Long, k As Long
9 2 9C-1650-004 NV-Z262P G 528 1 2 6 6 2 NV-Z262P G 9C-1650-004 23 Dim j As Long, Tem As String, Num As Double
10 3 9D-1423-004 NV-D227PJA F 1800 1 2 4 4 3 NV-D227PJA F 9D-1423-004 7 sArr = Range("C8", [C65536].End(3)).Resize(, 8).Value
11 4 9A-1721-004 NV-Y812P H 240 1 2 5 5 4 NV-Y812P H 9A-1721-004 8 ReDim dArr(1 To UBound(sArr, 1), 1 To 5)
12 5 9A-1748-004 NV-Y934PB E 552 1 2 1 1 5 NV-Y934PB E 9A-1748-004 16 With CreateObject("Scripting.Dictionary")
13 6 9C-1650-004 NV-Z262P G 528 1 2 11 11 6 NV-Z627PD - 9E-1250-004 9 For I = 1 To UBound(sArr, 1)
14 7 9E-1250-004 NV-Z627PD - 360 1 2 6 6 7 NV-D035PC D 9E-1166-004 10 Tem = sArr(I, 2)
15 8 9E-1166-004 NV-D035PC D 888 1 2 7 7 8 NV-Y919PB G 95-1382-004 7 Num = sArr(I, 8) + sArr(I, 5) + sArr(I, 6)
16 9 95-1382-004 NV-Y919PB G 240 1 2 4 4 9 NV-Y107P G 9D-1152-004 8 If Not .Exists(Tem) Then
17 10 9D-1152-004 NV-Y107P G 1080 1 2 5 5 10 NV-Y911P G 9A-1319-004 12 k=k+1
18 11 9A-1319-004 NV-Y911P G 528 1 2 9 9 11 NV-Y876PC M 91-1772-004 7 .Add Tem, k
19 12 91-1772-004 NV-Y876PC M 528 1 2 4 4 12 NV-Z314P M 9D-1224-004 11 dArr(k, 1) = k
20 13 9A-1748-004 NV-Y934PB E 600 1 2 3 3 13 IV-802-MAK H 9A-1083-004 9 dArr(k, 2) = sArr(I, 2)
21 14 9D-1224-004 NV-Z314P M 1320 1 2 8 8 14 NV-Y935P J 9A-1334-004 10 dArr(k, 3) = sArr(I, 3)
22 15 9A-1083-004 IV-802-MAK H 960 1 2 6 6 15 NV-Y896PB M 92-1738-004 7 dArr(k, 4) = sArr(I, 7)
23 16 9A-1334-004 NV-Y935P J 360 1 2 7 7 16 NV-Y795P F 9B-1759-004 4 dArr(k, 5) = Num
24 17 92-1738-004 NV-Y896PB M 3960 1 2 4 4 Else
25 18 9A-1748-004 NV-Y934PB E 576 1 2 3 3 dArr(.Item(Tem), 5) = dArr(.Item(Tem), 5) + Num
26 19 9B-1759-004 NV-Y795P F 480 1 2 1 1 End If
27 20 95-1637-004 NV-Y712PB M 480 1 2 2 2 Next
28 End With
29 Range("M8:Q1000").ClearContents
30 If k Then [M8].Resize(k, 5) = dArr
31 End Sub
32
33
34
35
36

18
B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC
4
5 Bảng 1 Bảng 2 Bảng 3 Bảng 4
6 1 2 3 4 5 1 2 3 4 5
7 STT TYPE Rev Quantity A B STT TYPE Rev Quantity A B TYPE Rev Quantity A B TYPE Rev Quantity A B
8 1 NV-Y712PB M 192 5 1 1 NV-Y712PB M 192 5 1 NV-Z262P G 528 1 NV-Z262P G 528 1
9 2 NV-Z262P G 528 1 2 NV-Z262P G 528 5 NV-Y812P H 240 5 1 NV-Y812P H 240 5 1
10 3 NV-D227PJA F 1800 2 1 3 NV-D227PJA F 1800 2 1 NV-Z627PD - 360 9 1 NV-Z627PD - 360 9 1
11 4 NV-Y812P H 240 5 1 4 NV-Y812P H 240 5 6
12 5 NV-Y934PB E 552 4 1 5 NV-Y934PB E 552 4 1
13 6 NV-Y855P M 360 1 6 NV-Y855P M 360 1
14 7 NV-Z627PD - 360 9 1 7 NV-Z627PD - 360 9 7
15 8 NV-D035PC D 888 11 1 8 NV-D035PC D 888 11 1
16
17 Bảng 3
18 Private Sub CommandButton1_Click()
19 Dim sArr(), Arr(), I As Long, J As Long, K As Long
20 On Error Resume Next
21 sArr = Range("C8", [C65000].End(3)).Resize(, 5).Value2 sArr = Range("C8", [C65000].End(3)).Resize(, 5).Value2
22 Arr = Range("J8", [J65000].End(3)).Resize(, 5).Value2 Arr = Range("J8", [J65000].End(3)).Resize(, 5).Value2
23 For I = 1 To UBound(sArr, 1) For I = 1 To UBound(sArr, 1)
24 If sArr(I, 1) <> Arr(I, 1) Or _ For N = 1 To 5
25 sArr(I, 2) <> Arr(I, 2) Or _ If sArr(I, N) <> Arr(I, N) Then
26 sArr(I, 3) <> Arr(I, 3) Or _ K=K+1
27 sArr(I, 4) <> Arr(I, 4) Or _ For J = 1 To UBound(sArr, 2)
28 sArr(I, 5) <> Arr(I, 5) Then Arr(K, J) = sArr(I, J)
29 K=K+1 Next
30 For J = 1 To UBound(sArr, 2) End If
31 Arr(K, J) = sArr(I, J) Next
32 Next Next
33 End If [X8:AB20].ClearContents
34 Next Range("X8:AB20").Borders.LineStyle = 0
35 [Q8:U20].ClearContents Range("X8").Resize(K, 5).Value2 = Arr
36 Range("Q8:U20").Borders.LineStyle = 0 Range("X8").Resize(K, 5).Borders.LineStyle = 1
37 Range("Q8").Resize(K, 5).Value2 = Arr Range("X8").Resize(K, 5).Borders.Weight = 1
38 Range("Q8").Resize(K, 5).Borders.LineStyle = 1 End Sub
39 Range("Q8").Resize(K, 5).Borders.Weight = 1
40
41 End Sub
42

19
A B C D E F G H I J K L M N O P Q R S T U V W X
4
5 Bảng 1
6
7 STT A B C D Private Sub CommandButton1_Click() Private Sub CommandButton3_Click()
8 1 C C A C Dim sArr, Arr, I As Long, k As Long, Rng As Range, tmp As String, Cll As Range Dim Dic As Object
9 3 A Set Rng = Range([C8], [C65000].End(xlUp)) Dim I As Long
10 4 A sArr = Rng.Value Set Dic = CreateObject("Scripting.Dictionary")
11 5 B A A Set Dic = CreateObject("Scripting.Dictionary") For I = 8 To [E65536].End(xlUp).Row
12 7 F For I = 1 To UBound(sArr, 1) If Not Dic.Exists(Cells(I, 5).Value) Then
13 8 B A A If Not Dic.Exists(sArr(I, 1)) Then Dic.Add Cells(I, 5).Value, I
14 9 C C Dic.Add sArr(I, 1), 2 Else
15 10 W G Else Cells(I, 5).Interior.ColorIndex = 6
16 11 C D I D Dic.Item(sArr(I, 1)) = Dic.Item(sArr(I, 1)) + 1 Range([E1], [E65536].End(xlUp))(Dic.Item(Cells(I, 5).Value)).Interior.ColorIndex = 6
17 12 End If End If
18 13 H Next Next
19 14 E For Each Cll In Rng End Sub
20 15 B B tmp = Cll.Value
21 16 A J If Dic.Item(tmp) > 1 Then Private Sub CommandButton4_Click()
22 17 Cll.Interior.ColorIndex = Dic.Item(tmp) Dim Arr(), I As Long, Dic As Object
23 18 F F End If Arr = Range("E8", [E65536].End(3)).Value
24 19 D K Next Set Dic = CreateObject("scripting.dictionary")
25 20 Set Dic = Nothing For I = 1 To UBound(Arr)
26 End Sub Dic(Arr(I, 1)) = Dic(Arr(I, 1)) + 1
27 Next
28 Private Sub CommandButton2_Click() For I = 1 To UBound(Arr)
29 Dim Dic As Object If Dic(Arr(I, 1)) > 1 Then
30 Dim rSrcRng As Range, Arr Cells(I + 7, 5).Interior.ColorIndex = 6
31 Dim lR As Long End If
32 Dim sTmp As String Next
33 Set Dic = CreateObject("Scripting.Dictionary") End Sub
34 With Sheet20
35 Set rSrcRng = .Range(.Range("D8"), .Range("D65000").End(xlUp)) Private Sub CommandButton5_Click()
36 Arr = rSrcRng.Value2 Dim rg As Range, C As Range
37 rSrcRng.Interior.ColorIndex = xlNone Set rg = Range("F8:F25")
38 For lR = 1 To UBound(Arr, 1) For Each C In rg.Cells
39 sTmp = CStr(Arr(lR, 1)) If WorksheetFunction.CountIf(rg, C) > 1 Then C.Interior.ColorIndex = 3
40 If Not Dic.Exists(sTmp) Then Next C
41 Dic.Add sTmp, lR End Sub
42 Else
43 rSrcRng(lR, 1).Interior.ColorIndex = 8
44 rSrcRng(Dic.Item(sTmp), 1).Interior.ColorIndex = 8
45 End If
46 Next lR
47 End With
48 End Sub
49

20
A B C D E F G H I J K L M N O P Q R S T U V W
4
5 Bảng 1 Bảng 2 Bảng 2
6
7 STT TYPE Rev Quantity TYPE Rev Quantity TYPE Rev Quantity Private Sub CommandButton1_Click()
8 1 NV-Y712PB M 1 NV-Y712PB M 2 NV-Y712PB M 2 Dim Arr(), Darr(), I, J, K, Dic As Object
9 2 NV-Z262P G 1 NV-Z262P G 1 NV-Z262P G 1 Set Dic = CreateObject("scripting.dictionary")
10 3 NV-Y911P G 1 NV-Y911P G 4 NV-Y911P G 4 Arr = Range("C8", [C5000].End(xlUp)).Resize(, 3).Value
11 4 NV-Y919PB G 1 NV-Y919PB G 2 NV-Y919PB G 2 ReDim Darr(1 To UBound(Arr, 1), 1 To 3)
12 5 NV-Y934PB E 1 NV-Y934PB E 2 NV-Y934PB E 2 For I = 1 To UBound(Arr, 1)
13 6 NV-Y911P G 1 NV-Y107P G 2 NV-Y107P G 2 If Not Dic.exists(Arr(I, 1)) Then
14 7 NV-Y934PB E 1 K=K+1
15 8 NV-Y712PB M 1 Dic.Add Arr(I, 1), K
16 9 NV-Y919PB G 1 For J = 1 To 3
17 10 NV-Y107P G 1 Darr(K, J) = Arr(I, J)
18 11 NV-Y911P G 1 Next
19 12 NV-Y107P G 1 Else
20 13 NV-Y911P G 1 Darr(Dic.Item(Arr(I, 1)), 3) = Darr(Dic.Item(Arr(I, 1)), 3) + Arr(I, 3)
21 End If
22 Next
23 Range("H8:J5000").ClearContents
24 Range("H8").Resize(K, 3) = Darr
25 End Sub
26
27 Private Sub CommandButton2_Click()
28 Dim Arr(), dArr(), i, j, k
29 Arr = Range("C8", [C5000].End(xlUp)).Resize(, 3).Value
30 ReDim dArr(1 To UBound(Arr, 1), 1 To 3)
31 With CreateObject("scripting.dictionary")
32 For i = 1 To UBound(Arr, 1)
33 If Not .Exists(Arr(i, 1)) Then
34 k=k+1
35 .Add Arr(i, 1), k
36 For j = 1 To 3
37 dArr(k, j) = Arr(i, j)
38 Next
39 Else
40 dArr(.Item(Arr(i, 1)), 3) = dArr(.Item(Arr(i, 1)), 3) + Arr(i, 3)
41 End If
42 Next
43 End With
44 Range("M8:O5000").ClearContents
45 Range("M8").Resize(k, 3) = dArr
46 End Sub

21
A B C D E F G H I J K L M N O P Q R S T U
4
5 Bảng 1
6
7 STT TYPE Rev Quantity SUMIF CODE Private Sub CommandButton1_Click()
8 1 NV-Y712PB M 1 1 1 Dim Dic As Object, sArr(), dArr(), I As Long, Tem As String
9 2 NV-Z262P G 2 2 2 Set Dic = CreateObject("Scripting.Dictionary")
10 3 NV-D227PJA F 6 6 6 sArr = Range([C8], [C8].End(xlDown)).Resize(, 4).Value2
11 4 NV-Y812P H 5 5 5 ReDim dArr(1 To UBound(sArr, 1), 1 To 1)
12 5 NV-Y934PB E 4 4 4 For I = 1 To UBound(sArr, 1)
13 6 NV-Y855P M 9 9 9 Tem = sArr(I, 1)
14 7 NV-Z627PD - 3 3 3 If Not Dic.Exists(Tem) Then
15 8 NV-D035PC D 1 1 1 Dic.Add Tem, sArr(I, 3)
16 9 NV-Y919PB G 7 7 7 Else
17 10 NV-Y107P G 6 6 6 Dic.Item(Tem) = Dic.Item(Tem) + sArr(I, 3)
18 11 NV-Y911P G 3 3 3 End If
19 12 NV-Y876PC M 6 6 6 Next I
20 13 IV-702-MTS2 K 2 2 2 For I = 1 To UBound(sArr, 1)
21 dArr(I, 1) = Dic.Item(sArr(I, 1))
22 Next I
23 [G8].Resize(I - 1) = dArr
24 Set Dic = Nothing
25 End Sub
26
27
28
29
30
31
32
33
34
35

22
A B C D E F G H I J K L M N O P Q R S T U
3 Bảng 1
4
5 TYPE Rev Quantity CELL TYPE Rev Quantity CELL
6 NV-Y712PB M 192 AA NV-Y712PB M 192 AA Private Sub CommandButton1_Click()
7 NV-Z262P G 528 NV-Z262P G 528 AA Dim sArr(), dArr(1 To 5000, 1 To 5), I As Long, J As Long, K As Long, Tem As String
8 NV-Y587PB K 432 NV-Y587PB K 432 AA sArr = Range("B6", [B65536].End(xlUp)).Resize(, 4).Value
9 NV-Y115PJ D 792 NV-Y115PJ D 792 AA For I = 1 To UBound(sArr, 1)
10 NV-Z627PD - 360 BB If sArr(I, 4) <> Empty Then Tem = sArr(I, 4)
11 NV-D035PC D 888 BB If sArr(I, 1) <> Empty Then
12 NV-Z627PD - 360 BB IV-702-MTS2 K 600 CC K=K+1
13 NV-D035PC D 888 NV-Z314P M 1320 CC For J = 1 To 3
14 IV-802-MAK H 960 CC dArr(K, J) = sArr(I, J)
15 NV-Y935P J 360 CC Next J
16 NV-Y896PB M 3960 CC dArr(K, 4) = Tem
17 NV-Y795P F 480 DD End If
18 IV-702-MTS2 K 600 CC NV-Y243P E 480 DD Next I
19 NV-Z314P M 1320 NV-Y965P K 192 DD Range("H6:K5000").ClearContents
20 IV-802-MAK H 960 NV-Z340PA G 480 DD Range("H6").Resize(K, 4) = dArr
21 NV-Y935P J 360 NV-D237PJ G 2640 EE End Sub
22 NV-Y896PB M 3960 NV-D939PA E 720 FF
23 NV-Y984P D 192 FF
24 NV-Y795P F 480 DD NV-D982P L 3000 FF
25 NV-Y243P E 480 NV-Y794PF K 600 FF
26 NV-Y965P K 192 AVP-7040 R 168 FF
27 NV-Z340PA G 480 NV-A911P E 192 FF
28 NV-Y703PB K 312 FF
29
30 NV-D237PJ G 2640 EE
31
32
33
34
35 NV-D939PA E 720 FF
36 NV-Y984P D 192
37 NV-D982P L 3000
38 NV-Y794PF K 600
39 AVP-7040 R 168
40 NV-A911P E 192
41 NV-Y703PB K 312
42
43
44

23
A B C D E F G H I J K L M N O P Q R S T
3
4 Bảng 1
5 TYPE Quantity TYPE
6 NV-Y712PB 192 NV-Y712PB 192 120 600 48 720 Private Sub CommandButton1_Click()
7 NV-Z262P 528 NV-Z262P 528 240 1,200 552 480 Dim Data(), Res(), tmp As Variant
8 NV-D227PJA 1800 NV-D227PJA 1,800 120 720 360 240 Dim i As Long, Col As Long, x As Long, y As Long, k As Long
9 NV-Z314P 192 NV-Z314P 192 240 480 96 120 Data = Range([B6], [C6].End(xlDown)).Value
10 NV-Y934PB 552 NV-Y934PB 552 360 48 24 96 ReDim Res(1 To UBound(Data), 1 To 255)
11 NV-Y855P 240 NV-Y855P 240 24 96 600 1,440 With CreateObject("Scripting.Dictionary")
12 NV-Y712PB 120 For i = 1 To UBound(Data, 1)
13 NV-Z262P 240 tmp = Data(i, 1)
14 NV-D227PJA 120 If Not .Exists(tmp) Then
15 NV-Z314P 240 k=k+1
16 NV-Y934PB 360 .Add Data(i, 1), k
17 NV-Y855P 24 Res(k, 1) = tmp
18 NV-Y712PB 600 Res(k, 2) = Data(i, 2)
19 NV-Z262P 1200 Else
20 NV-D227PJA 720 x = .Item(Data(i, 1))
21 NV-Z314P 480 For y = 2 To UBound(Res, 2)
22 NV-Y934PB 48 If Res(x, y) = Empty Then
23 NV-Y855P 96 Res(x, y) = Data(i, 2)
24 NV-Y712PB 48 Col = IIf(y > Col, y, Col)
25 NV-Z262P 552 Exit For
26 NV-D227PJA 360 End If
27 NV-Z314P 96 Next
28 NV-Y934PB 24 End If
29 NV-Y855P 600 Next i
30 NV-Y712PB 720 End With
31 NV-Z262P 480 [F6].Resize(k, Col) = Res
32 NV-D227PJA 240 End Sub
33 NV-Z314P 120
34 NV-Y934PB 96
35 NV-Y855P 1440
36
37
38
39

24
A B C D E F G H I J K L M N O P Q R S T U V
3
4 Bảng 1
5 TYPE Rev Quantity TYPE Rev Quantity
6 NV-Y712PB M 192 NV-Y712PB M 192
7 NV-Z262P G 528 NV-Y712PB M 240 Private Sub CommandButton1_Click()
8 NV-D227PJA F 1800 NV-Z627PD - 360 Dim Arr(), Darr(1 To 655536, 1 To 3), i, j, k, tam As String
9 NV-Y712PB M 240 NV-Y919PB G 240 Dim Dic1 As Object, Dic2 As Object
10 NV-Y934PB E 552 NV-Z627PD - 120 Set Dic1 = CreateObject("scripting.dictionary")
11 NV-Y855P M 360 NV-Y919PB G 480 Set Dic2 = CreateObject("scripting.dictionary")
12 NV-Z627PD - 360 NV-Z627PD - 240 Arr = Range([B6], [D65536].End(3)).Value
13 NV-D035PC D 888 NV-Y919PB G 960 For i = 1 To UBound(Arr)
14 NV-Y919PB G 240 tam = Arr(i, 1) & Arr(i, 2)
15 NV-Y107P G 1080 If Not Dic1.Exists(tam) Then
16 NV-Z627PD - 120 Dic1.Add tam, ""
17 NV-Y876PC M 528 Else
18 NV-Y919PB G 480 If Not Dic2.Exists(tam) Then Dic2.Add tam, ""
19 NV-Z314P M 1320 End If
20 NV-Z627PD - 240 Next
21 NV-Y935P J 360 For i = 1 To UBound(Arr)
22 NV-Y896PB M 3960 tam = Arr(i, 1) & Arr(i, 2)
23 NV-Y919PB G 960 If Dic2.Exists(tam) Then
24 k=k+1
25 For j = 1 To 3
26 Darr(k, j) = Arr(i, j)
27 Next
28 End If
29 Next
30 If k Then [H6].Resize(k, 3) = Darr
31 End Sub
32
33
34
35
36
37

25
A B C D E F G H I J K L M N O P Q R S
3
4 Bảng 1
5 TYPE Rev Quantity TYPE Rev Quantity
6 NV-D035PC D 192 NV-Y712PB M
7 NV-Y911P G 528 NV-Z262P G Private Sub CommandButton1_Click()
8 NV-D227PJA F 1800 NV-D227PJA F 1800 Dim Dic As Object, sArr(), tArr(1 To 1000, 1 To 1), dArr(1 To 1000, 1 To 1)
9 NV-Y935P J 240 NV-Y812P H Dim I As Long, K As Long, C As Long, Tem As String
10 NV-Y133P F 552 NV-Y934PB E Set Dic = CreateObject("Scripting.Dictionary")
11 NV-Y855P M sArr = Range([F6], [F65536].End(xlUp)).Value
12 NV-Z627PD - C = [IV5].End(xlToLeft).Column
13 NV-D035PC D 192 For I = 1 To UBound(sArr, 1)
14 NV-Y919PB G K=K+1
15 NV-Y107P G Tem = sArr(I, 1)
16 NV-Y911P G 528 If Not Dic.Exists(Tem) Then Dic.Add Tem, K
17 NV-Y876PC M tArr(I, 1) = sArr(I, 1)
18 IV-702-MTS2 K Next I
19 NV-Z314P M sArr = Range([B6], [D65536].End(xlUp)).Value
20 IV-802-MAK H For I = 1 To UBound(sArr, 1)
21 NV-Y935P J 240 Tem = sArr(I, 1)
22 NV-Y896PB M If Dic.Exists(Tem) Then
23 NV-Y133P 552 dArr(Dic.Item(Tem), 1) = sArr(I, 3)
24 Else
25 K=K+1
26 tArr(K, 1) = sArr(I, 1)
27 dArr(K, 1) = sArr(I, 3)
28 End If
29 Next I
30 [F6].Resize(K) = tArr
31 [F6].Offset(, C - 6).Resize(K).Value = dArr
32 Set Dic = Nothing
33 End Sub
34
35
36
37

26
A B C D E F G H I J K L M N O P Q R S T

2
3 TYPE Rev Quantity LotNo LotNo 150501 150503 150502 150504 150505
4 NV-Y712PB M 192 150501 NV-Y712PB 192 600 840 Private Sub CommandButton1_Click()
5 NV-Z262P G 528 150503 NV-Z262P 1,416 480 1,320 Dim Dic As Object, Col As Object, sArr(), dArr(), I As Long, k As Long
6 NV-D227PJA F 1800 150502 NV-D227PJA 960 192 2,040 Dim Tem As String, j As Long, Sang As String, R As Long, C As Long
7 NV-Y812P H 240 150504 NV-Y812P 1,080 720 360 Set Dic = CreateObject("Scripting.Dictionary")
8 NV-Y934PB E 552 150501 NV-Y934PB 5,040 2,400 Set Col = CreateObject("Scripting.Dictionary")
9 NV-Y855P M 360 150501 NV-Y855P 936 1,200 528 On Error Resume Next
10 NV-Y712PB M 360 150504 With Sheet27
11 NV-Z262P G 888 150503 sArr = .Range(.[F4], .[F4].End(xlDown)).Value
12 NV-D227PJA F 240 150502 End With
13 NV-Y812P H 1080 150503 k=1
14 NV-Y934PB E 528 150501 For I = 1 To UBound(sArr, 1)
15 NV-Y855P M 528 150504 k=k+1
16 NV-Y712PB M 600 150503 Tem = sArr(I, 1)
17 NV-Z262P G 1320 150505 Dic.Item(Tem) = k
18 NV-D227PJA F 960 150501 Next I
19 NV-Y812P H 360 150505 With Sheet27
20 NV-Y934PB E 3960 150501 sArr = .Range(.[A4], .[A4].End(xlDown)).Resize(, 4).Value
21 NV-Y855P M 576 150501 End With
22 NV-Y712PB M 480 150504 ReDim dArr(1 To UBound(sArr, 1), 1 To 200)
23 NV-Z262P G 480 150502 For I = 1 To UBound(sArr, 1)
24 NV-D227PJA F 192 150503 If Not Col.exists(sArr(I, 4)) Then
25 NV-Y812P H 480 150504 j=j+1
26 NV-Y934PB E 2400 150503 Col.Item(sArr(I, 4)) = j
27 NV-Y855P M 1200 150502 dArr(1, j) = sArr(I, 4)
28 End If
29 Tem = sArr(I, 1)
30 R = Dic.Item(Tem)
31 C = Col.Item(sArr(I, 4))
32 dArr(R, C) = dArr(R, C) + sArr(I, 3)
33 Next I
34 With Sheet27
35 .[G3].Resize(k, j) = dArr
36 End With
37 Set Dic = Nothing
38 Set Col = Nothing
39 End Sub
40
41

27
A B C D E F G H I J K L M N O P Q R
4
5
6 TYPE T1 T2 T3 T4 T5
7 NV-Y712PB 120 Private Sub CommandButton1_Click()
8 TYPE Quantity NV-Z262P 240 480 Dim Arr(), Dic As Object, Col As Byte
9 NV-Z262P 192 NV-D227PJA 1200 5016 Dim I As Long, dArr(), j As Long
10 NV-Z627PD 528 NV-Y812P 2400 Col = 6
11 NV-Y107P 1800 NV-Y934PB 120 Set Dic = CreateObject("scripting.dictionary")
12 NV-Z314P 240 NV-Y855P 120 1200 With Sheet28
13 NV-Y896PB 552 NV-Z627PD 60 Arr = .Range("A9", .[A65536].End(3)).Value
14 NV-D035PC End With
15 NV-Y919PB With Sheet28
16 NV-Y107P 660 dArr = .Range("D7", .[D65536].End(3)).Resize(, Col).Value
17 NV-Y911P 45 5016 120 120 120 For I = 1 To UBound(Arr)
18 NV-Y876PC Dic(Arr(I, 1)) = ""
19 IV-702-MTS2 Next
20 NV-Z314P 50 For I = 1 To UBound(dArr)
21 IV-802-MAK If Dic.exists(dArr(I, 1)) Then
22 NV-Y935P 5016 For j = 2 To Col
23 NV-Y896PB 480 dArr(I, j) = ""
24 NV-Y133P 6 2400 120 Next
25 NV-Y795P End If
26 NV-Y243P 5 192 Next
27 NV-Y965P 600 .[D7].Resize(I - 1, UBound(dArr, 2)) = dArr
28 NV-Z340PA 4 120 End With
29 End Sub
30
31
32
33
34
35
36

28
A B C D E F G H I J K L M N O P Q R S
4
5
6 TYPE Quantity
7 NV-Y712PB Private Sub CommandButton1_Click()
8 TYPE Quantity NV-Z262P 192 Dim Arr(), Dic As Object, Col As Byte
9 NV-Z262P 192 NV-D227PJA Dim I As Long, dArr(), j As Long, Tem, k
10 NV-Z627PD 528 NV-Y812P 480 Col = 6
11 NV-Y107P 1,800 NV-Y934PB Set Dic = CreateObject("scripting.dictionary")
12 NV-Z314P 240 NV-Y855P 240 With Sheet29
13 NV-Y133P 552 NV-Z627PD 528 Arr = .Range("A9", .[A65536].End(3)).Resize(, 2).Value
14 NV-Z340PA 120 NV-D035PC End With
15 NV-Y919PB With Sheet29
16 NV-Y107P 1,800 dArr = .Range("D7", .[D65536].End(3)).Resize(, Col).Value
17 NV-Y911P For I = 1 To UBound(Arr)
18 NV-Y876PC 360 Tem = Arr(I, 1)
19 IV-702-MTS2 If Not Dic.exists(Arr(I, 1)) Then
20 NV-Z314P 240 Dic.Add Tem, Arr(I, 2)
21 IV-802-MAK End If
22 NV-Y935P Next
23 NV-Y896PB 120 For I = 1 To UBound(dArr)
24 NV-Y133P 552 Tem = dArr(I, 1)
25 NV-Y795P If Dic.exists(dArr(I, 1)) Then
26 NV-Y243P 240 dArr(I, 2) = Dic.Item(Tem)
27 NV-Y965P End If
28 NV-Z340PA 120 Next
29 .[D7].Resize(I - 1, 2) = dArr
30 End With
31 End Sub
32
33
34
35

29
A B C D E F G H I J K L M N O P Q R S T U V
4
5 KHSX
6 Data DWG TYPE Rev DWG TYPE Rev
7 9D-1423-004 NV-D227PJA G 9D-1423-004 NV-D227PJA G Private Sub CommandButton1_Click()
8 DWG TYPE Rev 9E-1250-004 NV-Z627PC - 9E-1250-004 NV-Z627PC - Dim Arr(), Dic As Object, Tem, Res()
9 95-1637-004 NV-Y712PB M 9D-1153-004 NV-Y107P G 9D-1153-004 NV-Y107P G Dim I As Long, dArr(), j As Long, K As Long
10 9C-1650-004 NV-Z262P G 94-1610-004 IV-702-MTS2 L 94-1610-004 IV-702-MTS2 L Set Dic = CreateObject("scripting.dictionary")
11 9D-1423-004 NV-D227PJA F 9A-1334-004 NV-Y935P J OK Range("M7:M100").ClearContents
12 9A-1721-004 NV-Y812P H With Sheet30
13 9A-1748-004 NV-Y934PB E Arr = .Range("A9", .[A65536].End(3)).Resize(, 4).Value
14 9A-1150-004 NV-Y855P M End With
15 9E-1250-004 NV-Z627PD - With Sheet30
16 9E-1166-004 NV-D035PC D dArr = .Range("G7", .[G65536].End(3)).Resize(, 4).Value
17 95-1382-004 NV-Y919PB G For I = 1 To UBound(Arr)
18 9D-1152-004 NV-Y107P G Tem = Arr(I, 1) & Arr(I, 2) & Arr(I, 3)
19 9A-1319-004 NV-Y911P G Dic(Tem) = ""
20 91-1772-004 NV-Y876PC M Next
21 94-1610-004 IV-702-MTS2 K For I = 1 To UBound(dArr)
22 9D-1224-004 NV-Z314P M Tem = dArr(I, 1) & dArr(I, 2) & dArr(I, 3)
23 9A-1083-004 IV-802-MAK H If Dic.Exists(Tem) Then
24 9A-1334-004 NV-Y935P J dArr(I, 4) = "OK"
25 End If
26 Next
27 .[G7].Resize(I - 1, 4) = dArr
28 End With
29 With Sheet30
30 dArr = .Range("G7", .[G65536].End(3)).Resize(, 4).Value
31 End With
32 ReDim Res(1 To UBound(dArr, 1), 1 To 4)
33 For I = 1 To UBound(dArr)
34 If dArr(I, 4) = Empty Then
35 K=K+1
36 Res(K, 1) = dArr(I, 1)
37 Res(K, 2) = dArr(I, 2)
38 Res(K, 3) = dArr(I, 3)
39 End If
40 Next
41 If K Then
42 Range("L7").Resize(K, 4) = Res
43 Else
44 MsgBox "KHONG CO"
45 End If
46 End Sub
47

30
A B C D E F G H I J K L M N O
1
2
3
4
5
6
Change
7 NO
8 Private Sub CommandButton1_Click()
9 Dim EditMsg As Long, EditItem As String
10 EditMsg = MsgBox("Ban muon lam gi voi muc ban dang chon?" & String(2, vbLf) & _
11 "+ Bam YES, Chon File Change cap nhat" & String(2, vbLf) & _
12 "+ Bam NO, Xem CODE chuyen doi" & String(2, vbLf) & _
13 "+ Bam CANCEL, De huy chon", vbQuestion + vbYesNoCancel, "CAP NHAT CODE")
14 If EditMsg = vbYes Then
15 Range("E7").ClearContents
16 Range("D7") = "YES"
17 ElseIf EditMsg = vbNo Then
18 Range("D7").ClearContents
19 Range("E7") = "NO"
20 End If
21 End Sub
22
23

31
A B C D E F G H I J K L M N O P Q
6
7 1 2 3 4 5
OPENING TOTAL TOTAL CLOSING IN OUT IN OUT IN OUT IN OUT IN OUT
8 STT TYPE STOCK IN OUT STOCK
9 1 NV-Y712PB 100 60 35 125 20 20 20 20 15
10 2 NV-Z262P 100 45 95 50 15 20 15 15 15 60
11 3 NV-D227PJA 200 80 26 254 60 11 20 15
12 4 NV-Y812P 250 26 105 171 11 45 15 60
13 5 NV-Y934PB 60 150 67 143 45 11 45 45 60 11
14 6 NV-Y855P 16 141 125 32 100 45 15 20 15 15 11 45
15 7 NV-Z627PD 45 120 75 90 60 15 60 60
16 8 NV-D035PC 25 178 96 107 20 6 5 11 60 11 11 150
17 9 NV-Y919PB 74 0 19 55 15 4
18 10 NV-Y107P 60 35 90 5 60 15 20 15 15
19 11 NV-Y911P 20 0 11 9 11
20 12 NV-Y876PC 20 75 45 50 45 5 70
21 13 IV-702-MTS2 15 4 0 19 4
22
23 Private Sub CommandButton1_Click()
24 Dim sArr(), dArr(), I As Long, J As Long
25 sArr = Range([C9], [C9].End(xlDown)).Offset(, 5).Resize(, 10).Value
26 ReDim dArr(1 To UBound(sArr, 1), 1 To 3)
27 For I = 1 To UBound(sArr, 1)
28 For J = 1 To 10 Step 2
29 dArr(I, 1) = dArr(I, 1) + sArr(I, J)
30 dArr(I, 2) = dArr(I, 2) + sArr(I, J + 1)
31 Next J
32 dArr(I, 3) = "=RC[-3]+RC[-2]-RC[-1]"
33 Next I
34 [E9:G9].Resize(I - 1) = dArr
35 [G9].Resize(I).Value = [G9].Resize(I).Value
36 End Sub
37

32
A B C D E F G H I J K L M N O P
4
5 DATA KH
6
7 DWG TYPE Rev DWG TYPE Rev DWG TYPE Rev DWG TYPE Rev
8 95-1637-004 NV-Y712PB L 95-1637-004 NV-Y712PB M 95-1637-004 NV-Y712PB M 95-1637-004 NV-Y712PB M
9 9C-1650-004 NV-Z262P G 9C-1650-004 NV-Z262P G 9D-1423-004 NV-D227PJA F 9D-1423-004 NV-D227PJA F
10 9D-1423-004 NV-D227PJA D 9D-1423-004 NV-D227PJA F
11 9A-1721-004 NV-Y812P H 9A-1721-004 NV-Y812P H
12 9A-1748-004 NV-Y934PB E
13 9A-1150-004 NV-Y855P M
14 9E-1250-004 NV-Z627PD -
15 9E-1166-004 NV-D035PC D
16
17 Private Sub CommandButton1_Click()
18 Dim Dic As Object, sArr(), dArr(), i As Long, K As Long, Tem As String
19 Set Dic = CreateObject("Scripting.Dictionary")
20 With Sheet33
21 sArr = .Range(.[A8], .[A8].End(xlDown)).Resize(, 3).Value
22 For i = 1 To UBound(sArr, 1)
23 Tem = sArr(i, 1) & sArr(i, 2) & sArr(i, 3)
24 If Not Dic.Exists(Tem) Then
25 Dic.Add Tem, Empty
26 End If
27 Next i
28 End With
29
30 With Sheet33
31 sArr = .Range(.[E8], .[E8].End(xlDown)).Resize(, 3).Value
32 ReDim dArr(1 To UBound(sArr, 1), 1 To 3)
33 For i = 1 To UBound(sArr, 1)
34 Tem = sArr(i, 1) & sArr(i, 2) & sArr(i, 3)
35 If Not Dic.Exists(Tem) Then
36 K=K+1
37 Dic.Add Tem, Empty
38 dArr(K, 1) = sArr(i, 1)
39 dArr(K, 2) = sArr(i, 2)
40 dArr(K, 3) = sArr(i, 3)
41 End If
42 Next i
43 If K Then
44 .[I8].Resize(K, 3) = dArr
45 .[M8].Resize(K, 3) = dArr
46 Else
47 MsgBox "KHONG CO BAN VE MOI"
48 End If
49 End With
50 End Sub

33
A B C D E F G H I J K L M N O
4
5 H
6
7
8
9 DWG TYPE Rev Private Sub CommandButton1_Click()
10 95-1637-004 NV-Y712PB M Dim Rng As Range, Cll As Range, DK As String
11 9C-1650-004 NV-Z262P G With Sheet34
12 9D-1423-004 NV-D227PJA F DK = .[C5].Value
13 9A-1721-004 NV-Y812P H .[C8:E1000].Interior.ColorIndex = 0
14 9A-1748-004 NV-Y934PB E Set Rng = .Range(.[E10], .[E10].End(xlDown))
15 9A-1150-004 NV-Y855P M For Each Cll In Rng
16 9E-1250-004 NV-Z627PD - If Cll.Value = DK Then
17 9E-1166-004 NV-D035PC D Cll.Interior.ColorIndex = 6
18 95-1382-004 NV-Y919PB G End If
19 9D-1152-004 NV-Y107P G Next Cll
20 9A-1319-004 NV-Y911P G End With
21 91-1772-004 NV-Y876PC M Set Rng = Nothing
22 94-1610-004 IV-702-MTS2 K End Sub
23 9D-1224-004 NV-Z314P M
24 9A-1083-004 IV-802-MAK H
25 9A-1334-004 NV-Y935P J
26 92-1738-004 NV-Y896PB M
27 9B-1995-004 NV-Y133P F
28
29
30
31
32
33
34
35

34
A B C D E F G H I J K L M N O P Q R S
4
5
6 DWG TYPE Rev Quantity DWG TYPE Quantity Private Sub CommandButton1_Click()
7 95-1637-004 NV-Y712PB M 192 95-1637-004 NV-Y712PB 192 Application.ScreenUpdating = False
8 9C-1650-004 NV-Z262P G 528 9C-1650-014 NV-Z262P 1000 Dim Dic As Object, sArr(), Rng As Range, Cll As Range, I As Long, Tem As String
9 9D-1423-004 NV-D227PJA F 1800 9D-1423-014 NV-D227PJA 2000 Set Dic = CreateObject("Scripting.Dictionary")
10 9A-1721-004 NV-Y812P H 240 9A-1721-004 NV-Y812P 240 Set Rng = Range([G7], [G7].End(xlDown))
11 9A-1748-004 NV-Y934PB E 552 9A-1748-014 NV-Y934PB 600 sArr = Range([B7], [B7].End(xlDown)).Resize(, 4).Value
12 9A-1150-004 NV-Y855P M 360 9A-1150-004 NV-Y855P 360 For I = 1 To UBound(sArr, 1)
13 9E-1250-004 NV-Z627PD - 360 9E-1250-004 NV-Z627PD 360 Tem = sArr(I, 1) & "#" & sArr(I, 2) & "#" & sArr(I, 4)
14 9E-1166-004 NV-D035PC D 888 If Not Dic.Exists(Tem) Then Dic.Add Tem, Empty
15 95-1382-004 NV-Y919PB G 240 Next I
16 9D-1152-004 NV-Y107P G 1080 With Rng.Offset(, 2)
17 9A-1319-004 NV-Y911P G 528 .Interior.ColorIndex = 0
18 91-1772-004 NV-Y876PC M 528 .Font.ColorIndex = 0
19 94-1610-004 IV-702-MTS2 K 600 .Font.Bold = False
20 9D-1224-004 NV-Z314P M 1320 End With
21 9A-1083-004 IV-802-MAK H 960 For Each Cll In Rng
22 9A-1334-004 NV-Y935P J 360 Tem = Cll & "#" & Cll.Offset(, 1) & "#" & Cll.Offset(, 2)
23 92-1738-004 NV-Y896PB M 3960 If Dic.Exists(Tem) Then
24 9B-1995-004 NV-Y133P F 576 With Cll.Offset(, 2)
25 9B-1759-004 NV-Y795P F 480 .Interior.ColorIndex = 6
26 9C-1050-004 NV-Y243P E 480 .Font.ColorIndex = 3
27 9B-1076-004 NV-Y965P K 192 .Font.Bold = True
28 9B-1888-004 NV-Z340PA G 480 End With
29 9C-1340-004 AV06GF-P D 2400 End If
30 9D-1729-004 NV-D227PGA D 1800 Next
31 9A-1459-004 NV-Y750PB G 528 Set Dic = Nothing
32 9D-1135-004 NV-D237PJ G 2640 Set Rng = Nothing
33 9E-1204-004 NV-D1010P B 312 End Sub
34 95-1491-004 NV-Y231P N 480
35 9A-1906-004 NV-Y887PJ H 120
36 9E-1031-004 NV-D939PA E 720
37
38
39
40

36
A B C D E F G H I J K L M N O P Q
1
2
3
4 P/O No DWG. Type Rev Quantity Lot No P/O No DWG. Type Rev Quantity Lot No
5 4500253984 9B-1255-004NV-Y355PA E 240 141008 Type Rev 4500261538 9D-1692-004NV-D931P E 240 141001
6 4500261538 9D-1692-004NV-D931P E 240 141001 NV-D931P
7 4500261538 9D-1589-004NV-D927P D 192 141002
8 4500261538 9E-1129-004NV-D927PA - 480 141002
9 4500261538 9D-1737-004NV-D935P E 696 141002
10 4500261538 9D-1852-004NV-D939P A 360 141002
11 4500261538 9D-1792-004NV-D945P D 192 141002
12 4500261538 9E-1060-004NV-D946P C 312 141002
13 4500261538 9D-1242-004NV-D982PA G 696 141002
14 4500261538 9E-1164-004NV-D982PD - 960 141002
15 4500261538 9D-1246-004NV-Y021PS E 1200 141002
16 4500261538 9A-1186-004NV-Y733P G 480 141002
17 4500261538 9A-1459-004NV-Y750PB F 480 141002
18 4500261538 95-1184-004NV-Y751PA K 360 141002
19 4500261538 97-1297-004NV-Y876PD J 192 141002
20 4500261538 91-1836-004NV-Y876PF E 120 141002 Private Sub Worksheet_Change(ByVal Target As Range)
21 On Error Resume Next
22 If Not Intersect([H6:I15], Target) Is Nothing Then
23 With Sheet36
24 .Range("A4:F65000").AdvancedFilter xlFilterCopy, .Range("H5").CurrentRegion, .Range("K4:P4")
25 End With
26 End If
27 End Sub

36
A B C D E F G H I J K L M N O P Q R S
2 140104
3
4 DWG TYPE Rev Quantity 140101 140102 140103 140104 140105 DWG TYPE Rev Quantity 140104
5 9E-1235-004 NV-Z280P - 4800 1200 600 1200 9E-1235-004 NV-Z280P - 4800 1200
6 94-1849-004 NV-Y882PF G 312 312 240 9B-1999-004 NV-Y807P G 192 192
7 9B-1999-004 NV-Y807P G 192 192 120 9B-1762-004 NV-Z154PB N 312 312
8 94-1834-004 NV-Y771PA J 240 120 120 Total 1704
9 9A-1428-004 NV-Y356PA H 432 432
10 9C-1189-004 NV-Z202P E 864 864
11 9D-1788-004 NV-D938P C 216 216
12 Total 1536 744 1584 1392 360
13 Private Sub Worksheet_Change(ByVal Target As Range)
14 Dim Dic As Object, sArr(), tArr(), dArr(), I As Long, J As Long, K As Long, CoL As Long, DK As String, Tem As String
15 Set Dic = CreateObject("Scripting.Dictionary")
16 If Target.Address = "$L$2" Then
17 tArr = Range("A4:I4").Value
18 sArr = Range("A5", [A65536].End(xlUp)).Resize(, 9).Value
19 ReDim dArr(1 To UBound(sArr, 1), 1 To 5)
20 DK = [L2].Value
21 For J = 1 To UBound(tArr, 2)
22 If tArr(1, J) = DK Then CoL = J
23 'Exit For
24 Next J
25 For I = 1 To UBound(sArr, 1)
26 If sArr(I, CoL) <> Empty Then
27 Tem = sArr(I, 1)
28 If Not Dic.Exists(Tem) Then
29 K=K+1
30 Dic.Add Tem, K
31 dArr(K, 1) = sArr(I, 1)
32 dArr(K, 2) = sArr(I, 2)
33 dArr(K, 3) = sArr(I, 3)
34 dArr(K, 4) = sArr(I, 4)
35 dArr(K, 5) = sArr(I, CoL)
36 Else
37 dArr(Dic.Item(Tem), 2) = dArr(Dic.Item(Tem), 2) + sArr(I, CoL)
38 End If
39 End If
40 Next I
41 [K5:O100].ClearContents
42 If K Then
43 [K5].Resize(K, 5) = dArr
44 Else
45 MsgBox "Khong co du lieu.", , "GPE"
46 End If
47 End If
48 End Sub

37
A B C D E F G H I J K L M N O P Q R S
1
2 Type 931
3
4 DWG. Type Rev Quantity Lot No DWG. Type Rev Quantity Lot No Private Sub Worksheet_Change(ByVal Target As Range)
5 9B-1255-004 NV-Y355PA E 240 141008 1 9D-1692-004 NV-D931P E 240 141001 Dim sArr(), dArr(), I As Long, K As Long, DK As String
6 9D-1692-004 NV-D931P E 240 141001 If Target.Address = "$H$2" Then
7 9D-1589-004 NV-D927P D 192 141002 sArr = Range([A5], [A65536].End(xlUp)).Resize(, 6).Value
8 9E-1129-004 NV-D927PA - 480 141002 ReDim dArr(1 To UBound(sArr, 1), 1 To 6)
9 9D-1737-004 NV-D935P E 696 141002 DK = UCase([H2])
10 9D-1852-004 NV-D939P A 360 141002 For I = 1 To UBound(sArr, 1)
11 9D-1792-004 NV-D945P D 192 141002 If UCase(sArr(I, 2)) Like "*" & DK & "*" Then
12 9E-1060-004 NV-D946P C 312 141002 K=K+1
13 9D-1242-004 NV-D982PA G 696 141002 dArr(K, 1) = K
14 9E-1164-004 NV-D982PD - 960 141002 dArr(K, 2) = sArr(I, 1)
15 9D-1246-004 NV-Y021PS E 1200 141002 dArr(K, 3) = sArr(I, 2)
16 9A-1186-004 NV-Y733P G 480 141002 dArr(K, 4) = sArr(I, 3)
17 9A-1459-004 NV-Y750PB F 480 141002 dArr(K, 5) = sArr(I, 4)
18 95-1184-004 NV-Y751PA K 360 141002 dArr(K, 6) = sArr(I, 5)
19 9D-1737-004 NV-D935P E 696 141002 End If
20 91-1836-004 NV-Y876PF E 120 141002 Next I
21 92-1858-004 NV-Y881PC E 240 141002 [G5:L1000].ClearContents
22 9A-1284-004 NV-Y881PM D 168 141002 If K Then
23 9D-1737-004 NV-D935P E 696 141002 [G5].Resize(K, 6) = dArr
24 9C-1078-004 NV-Y895P J 192 141002 [H5].Resize(K, 5).Sort Key1:=[H5]
25 92-1738-004 NV-Y896PB M 3000 141002 End If
26 95-1012-004 NV-Y896PK D 192 141002 End If
27 91-1289-004 NV-Y898P J 312 141002 End Sub
28 9A-1474-004 NV-Y898PC D 360 141002
29 93-1996-004 NV-Y905PG D 192 141002
30 9B-1496-004 NV-Y910P E 240 141002

38
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD
1 6
2 HoTen Date1 Date2 Date3 Date4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 29
3 Hồ Lễ 3 6 9 12 To Mau 2 30
4 Đỗ Nè 4 8 13 15 3 31
5 Vũ Xe 2 4 12 16 4 32
To mau 2
6 5 33
7 Private Sub CommandButton1_Click() 6 34
8 Dim Rng As Range, iR As Integer, jC As Integer 7 35
9 Set Rng = Sheet39.Range("B3:E" & Sheet39.Range("B65535").End(xlUp).Row) 8 36
10 Rng.Offset(, 4).Resize(, 18).Interior.ColorIndex = 0 9 37
11 For iR = 1 To Rng.Rows.Count 10 38
12 For jC = 4 To 1 Step -1 11 39
13 Rng(iR, 5).Resize(, Rng(iR, jC)).Interior.ColorIndex = Sheet39.[Z1] - jC 12 40
14 Next jC 13 41
15 Next iR 14 42
16 End Sub 15 43
17 16 44
18 Rng(iR, 5).Resize(, Rng(iR, jC)).Interior.ColorIndex = 33 + Cells(iR + 2, jC + 1).Value 17 45
19 18 46
20 19 47
21 20 48
22 21 49
23 22 50
24 23 51
25 24 52
26 25 53
27 26 54
28 27 55
29 28 56

39
A B C D E F G H I J K L M N O P Q R S
3
4 Từ 03/01/2015 Đến 28/02/2015
5 Tính Tổng
6 Liệt kê: NV-Y712PB M 1224
7
8 Data Type Rev Quantity Data Type Rev Quantity
9 15/01/2015 NV-Y712PB M 192 15/01/2015 NV-Y712PB M 192 Private Sub CommandButton1_Click()
10 28/01/2015 NV-Z262P G 528 01/02/2015 NV-Y712PB M 240 Dim TuNgay As Long, DenNgay As Long, Tem As String, sArr(), dArr()
11 19/01/2015 NV-D227PJA F 1800 02/02/2015 NV-Y712PB M 552 Dim I As Long, J As Long, K As Long, DK As String, Tong As Double
12 01/02/2015 NV-Y712PB M 240 16/02/2015 NV-Y712PB M 240 TuNgay = Range("H4").Value
13 02/02/2015 NV-Y712PB M 552 DenNgay = Range("J4").Value
14 03/02/2015 NV-Z262P G 360 DK = Range("H6").Value & "#" & Range("I6").Value
15 04/02/2015 NV-D227PJA F 360 sArr = Range("B9", [B65536].End(xlUp)).Resize(, 4).Value
16 15/02/2015 NV-D035PC D 888 ReDim dArr(1 To UBound(sArr, 1), 1 To 4)
17 16/02/2015 NV-Y712PB M 240 For I = 1 To UBound(sArr, 1)
18 28/02/2015 NV-Z262P G 1080 If sArr(I, 1) >= TuNgay And sArr(I, 1) <= DenNgay Then
19 03/01/2015 NV-D227PJA F 528 Tem = sArr(I, 2) & "#" & sArr(I, 3)
20 07/03/2015 NV-Y712PB M 528 If Tem = DK Then
21 15/03/2015 NV-Z262P G 600 K=K+1
22 04/04/2015 NV-D227PJA F 1320 Tong = Tong + sArr(I, 4)
23 15/04/2015 NV-Y712PB M 552 For J = 1 To 4
24 20/04/2015 NV-Z262P G 360 dArr(K, J) = sArr(I, J)
25 04/05/2015 NV-D227PJA F 360 Next J
26 15/05/2015 NV-Y712PB M 888 End If
27 25/05/2015 NV-Z262P G 1080 End If
28 Next I
29 Range("G9:J1000").ClearContents
30 If K Then Range("G9").Resize(K, 4) = dArr
31 Range("J6") = Tong
32 End Sub
33
34
35
36
37
38
39

40
A B C D E F G H I L M N O P Q R S T U V
4
5
6 TYPE Quantity Private Sub CommandButton1_Click()
7 NV-Y905PG 192 Dim Arr(), Dic As Object, CoL As Byte
8 TYPE Quantity TYPE Quantity TYPE Quantity NV-Y910P 240 Dim I As Long, dArr(), J As Long, Tem, K
9 NV-Y881PM 168 NV-Y992P 360 NV-D035PC 696 NV-Y895P 192 Set Dic = CreateObject("scripting.dictionary")
10 NV-Y884P 240 NV-Z262P 456 NV-D1007P 792 NV-Y946P 240 With Sheet41
11 NV-Y895P 192 NV-Z491PD 456 NV-D115PW 1,200 NV-Z491PD 456 Arr = .Range("A9", .[A65536].End(3)).Resize(, 2).Value
12 NV-Y896PB 3,000 NV-Z620PC 240 NV-D227PJ 7,200 NV-Z131P 192 For I = 1 To UBound(Arr)
13 NV-Y896PK 192 NV-Z627PC 480 NV-Y030PB 480 NV-D227PJ 7,200 Tem = Arr(I, 1)
14 NV-Y898P 312 NV-Z637P 480 NV-Y030PD 192 NV-Y030PK 360 If Not Dic.Exists(Arr(I, 1)) Then
15 NV-Y898PC 360 NV-Y921PA 240 NV-Y030PE 264 NV-Y030PM 720 Dic.Add Tem, Arr(I, 2)
16 End If
17 Next
18 End With
19
20 With Sheet41
21 Arr = .Range("D9", .[D65536].End(3)).Resize(, 2).Value
22 For I = 1 To UBound(Arr)
23 Tem = Arr(I, 1)
24 If Not Dic.Exists(Arr(I, 1)) Then
25 Dic.Add Tem, Arr(I, 2)
26 End If
27 Next
28 End With
29
30 With Sheet41
31 Arr = .Range("G9", .[G65536].End(3)).Resize(, 2).Value
32 For I = 1 To UBound(Arr)
33 Tem = Arr(I, 1)
34 If Not Dic.Exists(Arr(I, 1)) Then
35 Dic.Add Tem, Arr(I, 2)
36 End If
37 Next
38 End With
39
40 With Sheet41
41 dArr = .Range("M7", .[M65536].End(3)).Resize(, 2).Value
42 For I = 1 To UBound(dArr)
43 Tem = dArr(I, 1)
44 If Dic.Exists(dArr(I, 1)) Then
45 dArr(I, 2) = Dic.Item(Tem)
46 End If
47 Next
48 .[M7].Resize(I - 1, 2) = dArr
49 End With
50 End Sub

41
A B C D E F G H I J K L M N O P Q R S T
4
5 TYPE DWG Rev TYPE DWG Rev
6 AVP-1304 93-1981-004 F IV-802-MAK 9A-1083-004 H
7 AVP-3015A 94-1318-004 F VP-740 98-1748-004 F
8 AVP-6022 9C-1190-004 F TYPE DWG Rev AVP-7040 99-1193-004 Q
9 NV-Y881PA 92-1033-004 F IV-802-MAK 9A-1083-004 H NV-Y370P 9B-1610-004 H Private Sub CommandButton1_Click()
10 NV-Y270P 9A-1642-004 G VP-740 98-1748-004 F Dim Dic As Object, sArr(), dArr(), I As Long, k As Long, Tem As String
11 VP-230 9B-1174-004 G AVP-7040 99-1193-004 Q Set Dic = CreateObject("Scripting.Dictionary")
12 NV-Y370P 9B-1610-004 H With Sheet42
13 NV-Y270P 9A-1642-004 G sArr = .Range(.[A5], .[A5].End(xlDown)).Resize(, 3).Value
14 VP-230 9B-1174-004 G For I = 1 To UBound(sArr, 1)
15 Tem = sArr(I, 1) & sArr(I, 2) & sArr(I, 3)
16 If Not Dic.exists(Tem) Then
17 Dic.Add Tem, Empty
18 End If
19 Next I
20 End With
21 With Sheet42
22 sArr = .Range(.[E9], .[E9].End(xlDown)).Resize(, 3).Value
23 ReDim dArr(1 To UBound(sArr, 1), 1 To 3)
24 For I = 1 To UBound(sArr, 1)
25 Tem = sArr(I, 1) & sArr(I, 2) & sArr(I, 3)
26 If Not Dic.exists(Tem) Then If Dic.exists(Tem) Then
27 k=k+1 k=k+1
28 Dic.Add Tem, Empty Dic.Add Tem, Empty
29 dArr(k, 1) = sArr(I, 1)
30 dArr(k, 2) = sArr(I, 2)
31 dArr(k, 3) = sArr(I, 3)
32 End If
33 Next I
34 End With
35 With Sheet42
36 If k Then
37 .[I6:K5000].ClearContents
38 .[I6].Resize(k, 3) = dArr
39 Else
40 Exit Sub
41 End If
42 End With
43 End Sub
44
45
46

42
A B C D E F G H I J K L M N O P Q R S
3
4
5
6 DWG TYPE Rev Quantity Private Sub CommandButton1_Click()
7 95-1637-004 NV-Y712PB M 192 Application.ScreenUpdating = False
8 9C-1650-004 NV-Z262P G 1000 Dim Dic As Object, sArr(), Rng As Range, Cll As Range, I As Long, Tem As String
9 9D-1423-004 NV-D227PJA F 1800 Set Dic = CreateObject("Scripting.Dictionary")
10 9A-1721-004 NV-Y812P H 240 Set Rng = Range([G19], [G19].End(xlDown))
11 9A-1748-004 NV-Y934PB E 552 sArr = Range([B7], [B7].End(xlDown)).Resize(, 4).Value
12 9A-1150-004 NV-Y855P M 200 For I = 1 To UBound(sArr, 1)
13 9E-1250-004 NV-Z627PD - 360 Tem = sArr(I, 1) & "#" & sArr(I, 2) & "#" & sArr(I, 4)
14 If Not Dic.exists(Tem) Then Dic.Add Tem, Empty
15 Next I
16 With Rng.Resize(, 3)
17 .Interior.ColorIndex = 0
18 DWG TYPE Quantity .Font.ColorIndex = 0
19 95-1637-004 NV-Y712PB 192 .Font.Bold = False
20 9C-1650-004 NV-Z262P 528 End With
21 9D-1423-004 NV-D227PJA 1800 For Each Cll In Rng
22 9A-1721-004 NV-Y812P 300 Tem = Cll & "#" & Cll.Offset(, 1) & "#" & Cll.Offset(, 2)
23 9A-1748-004 NV-Y934PB 552 If Not Dic.exists(Tem) Then If Dic.exists(Tem) Then
24 9A-1150-004 NV-Y855P 360 Dic.Add Tem, Empty Dic.Add Tem, Empty
25 9E-1250-004 NV-Z627PD 360 With Cll.Resize(, 3)
26 .Interior.ColorIndex = 6
27 .Font.ColorIndex = 3
28 .Font.Bold = True
29 End With
30 End If
31 Next
32 Set Dic = Nothing
33 Set Rng = Nothing
34 Application.ScreenUpdating = True
35 End Sub
36
37
38
39

43
A B C D E F G H I J K L M N O P Q R S T
1
TEST TEST TEST
2
3
4 CHUYEN 1 CHUYEN 2 CHUYEN 3 DATA KHSX
5 9B-1136-004 NV-Y114P K 95-1383-004 NV-Y115PJ C 9B-1789-004 NV-Y169P J 9B-1136-004 NV-Y114P K 1 9B-1602-004 NV-Y115P K
6 9B-1602-004 NV-Y115P K 9A-1908-004 NV-Y115PS D 9A-1995-004 NV-Y181P K 9B-1602-004 NV-Y115P J 2 9A-1908-004 NV-Y115PS D
7 9C-1222-004 NV-Y115PGE 9B-1887-004 NV-Y128PB E 98-1112-004 NV-Y191P N 9C-1222-004 NV-Y115PG E 3 95-1230-004 NV-Y140P K
8 95-1230-004 NV-Y140P K 9B-1904-004 NV-Y203P G 95-1383-004 NV-Y115PJ C 4 9A-1995-004 NV-Y181P K
9 9B-1446-004 NV-Y209PD K 9A-1908-004 NV-Y115PS M 5 9B-1904-004 NV-Y203P G
10 Private Sub CommandButton1_Click() 9B-1887-004 NV-Y128PB E
11 Dim Dic As Object, sArr(), dArr(), I As Long, k As Long, Tem As String 95-1230-004 NV-Y140P M
12 Set Dic = CreateObject("Scripting.Dictionary") 9B-1789-004 NV-Y169P J
13 With Sheet44 9A-1995-004 NV-Y181P E
14 sArr = .Range(.[A5], .[A5].End(xlDown)).Resize(, 3).Value 98-1112-004 NV-Y191P N
15 For I = 1 To UBound(sArr, 1) 9B-1904-004 NV-Y203P F
16 Tem = sArr(I, 1) & sArr(I, 2) & sArr(I, 3) 9B-1446-004 NV-Y209PD K
17 If Not Dic.exists(Tem) Then 9C-1090-004 NV-Y222P F
18 Dic.Add Tem, Empty 95-1491-004 NV-Y231P L
19 End If 9C-1050-004 NV-Y243P D
20 Next I 93-1542-004 NV-Y262PA L
21 End With 9B-1712-004 NV-Y277P G
22 With Sheet44 95-1005-004 NV-Y283P T
23 sArr = .Range(.[E5], .[E5].End(xlDown)).Resize(, 3).Value 9B-1345-004 NV-Y295P E
24 For I = 1 To UBound(sArr, 1) 94-1688-004 NV-Y298PD H
25 Tem = sArr(I, 1) & sArr(I, 2) & sArr(I, 3) 9B-1727-004 NV-Y320PD H
26 If Not Dic.exists(Tem) Then 92-1788-004 NV-Y326PE G
27 Dic.Add Tem, Empty 94-1788-004 NV-Y338PS G
28 End If 9B-1190-004 NV-Y366P G
29 Next I 94-1895-004 NV-Y453P H
30 End With 95-1355-004 NV-Y462P H
31 95-1429-004 NV-Y465P M
32 With Sheet44 95-1606-004 NV-Y473P D
33 sArr = .Range(.[I5], .[I5].End(xlDown)).Resize(, 3).Value 9B-1177-004 NV-Y493PA J
34 For I = 1 To UBound(sArr, 1) 9C-1728-004 NV-Y546PB F
35 Tem = sArr(I, 1) & sArr(I, 2) & sArr(I, 3)
36 If Not Dic.exists(Tem) Then
37 Dic.Add Tem, Empty
38 End If
39 Next I
40 End With

44
A B C D E F G H I J K L M N O P Q R S T
41
42 With Sheet44
43 sArr = .Range(.[M5], .[M5].End(xlDown)).Resize(, 3).Value
44 ReDim dArr(1 To UBound(sArr, 1), 1 To 13)
45 For I = 1 To UBound(sArr, 1)
46 Tem = sArr(I, 1) & sArr(I, 2) & sArr(I, 3)
47 If Not Dic.exists(Tem) Then If Dic.exists(Tem) Then
48 k=k+1 k=k+1
49 Dic.Add Tem, Empty Dic.Add Tem, Empty
50 dArr(k, 1) = k
51 dArr(k, 2) = sArr(I, 1)
52 dArr(k, 3) = sArr(I, 2)
53 dArr(k, 4) = sArr(I, 3)
54
55 End If
56 Next I
57 End With
58 With Sheet44
59 .Range("Q5:T5000").ClearContents
60 If k Then
61 .[Q5].Resize(k, 4) = dArr
62 Else
63 MsgBox "KHONG CO BAN VE MOI"
64 End If
65 End With
66 End Sub

44
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD
3
4
5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 18 19 20

96-9569-013
CARTON BOX B-A L (NV) 96-9569-023

96-9608-003
96-9730-003

96-9569-013

CARTON BOX B-A L (NV) 96-9569-023

96-9608-003

96-9730-003
6 1

CARTON BOX B-A (NV)

CARTON BOX B-A (NV)


CARTON BOX B (NV)

CARTON BOX B (NV)


CARTON BOX 3 (NV)

CARTON BOX 3 (NV)


7 2
8 3 DWG TYPE Rev CONCATENATE DWG TYPE Rev Quantity Private Sub CommandButton1_Click()
9 4 93-1981-004 AVP-1304 J AVP-1304 J 2 1 3 93-1981-004 AVP-1304 J 240 480 240 0 720 Dim Arr(), Darr(), I As Long, J As Long, C As Long
10 5 98-1330-004 AVP-1317 H AVP-1317 H 2 98-1330-004 AVP-1317 H 120 0 0 240 0 Dim Dic As Object, Tem As String
11 6 98-1360-004 AVP-3008 F AVP-3008 F 1 5 98-1360-004 AVP-3008 F 720 720 0 0 3600 Dim Col As Long, Rng As Range
12 7 94-1318-004 AVP-3015A K AVP-3015A K 2 3 94-1318-004 AVP-3015A K 360 720 0 0 1080 Set Dic = CreateObject("Scripting.Dictionary")
13 8 93-1019-004 AVP-3022 L AVP-3022 L 1 93-1981-004 AVP-1304 J 120 240 120 0 360 With Sheet45
14 9 93-1240-004 AVP-3822 H AVP-3822 H 5 6 98-1330-004 AVP-1317 H 240 0 0 480 0 Arr = .Range("G6", .[G6].End(xlToRight)).Value
15 # 92-1282-004 AVP-4902 H AVP-4902 H 1 8 98-1360-004 AVP-3008 F 360 360 0 0 1800 End With
16 # 9A-1602-004 AVP-5018 H AVP-5018 H 1 94-1318-004 AVP-3015A K 720 1440 0 0 2160 For J = 1 To UBound(Arr, 2)
17 # 95-1873-004 AVP-5021 G AVP-5021 G 4 4 Dic(Arr(1, J)) = J
18 # 94-1122-004 AVP-5027 G AVP-5027 G 2 1 Next
19 # 91-1421-004 AVP-6013 J AVP-6013 J 1 1 With Sheet45
20 # 9C-1190-004 AVP-6022 F AVP-6022 F 1 1 Col = .Range("R6", .[R6].End(xlToRight)).Count + 17
21 Darr = .Range("M6", .[M65536].End(xlUp)).Resize(, Col).Formula
22 End With
23 For I = 4 To UBound(Darr, 1)
24 Set Rng = Sheet45.Range("C:C").Find(Darr(I, 2), , , xlWhole)
25 If Not Rng Is Nothing Then
26 For J = 6 To UBound(Darr, 2)
27 If Dic.exists(Darr(1, J)) Then
28 C = Dic.Item(Darr(1, J))
29 Darr(I, J) = Rng.Offset(, C + 3) * Darr(I, 4)
30 End If
31 Next
32 End If
33 Next
34 With Sheet45
35 .Range("M6").Resize(I - 1, Col) = Darr
36 End With
37 End Sub
38
39
40

45
A B C D EF G H I J K L M N O P Q R S T U V W X
3
4 141030 Private Sub CommandButton1_Click() Private Sub CommandButton2_Click()
5 9D-1589-004 NV-D927P D 141002 Dim I As Long, Arr(), dArr(), j As Long, K As Long, Tem As String Dim I As Long, Arr(), dArr(), j As Long, K As Long, Tem As String
6 9E-1129-004 NV-D927PA - 9D-1737-004 NV-D935P E 1 Set Dic = CreateObject("scripting.dictionary") Set Dic = CreateObject("scripting.dictionary")
7 9D-1737-004 NV-D935P E 141030 9D-1246-004 NV-Y021PS E 2 With Sheet46 With Sheet46
8 9D-1852-004 NV-D939P A 9A-1284-004 NV-Y881PM D 3 Arr = .Range("G6", .[G65536].End(3)).Resize(, 4).Value Arr = .Range("G6", .[G65536].End(3)).Resize(, 4).Value
9 9D-1792-004 NV-D945P D 141002 95-1012-004 NV-Y896PK D 4 End With End With
10 9E-1060-004 NV-D946P C 9C-1078-004 NV-Y895P J 5 For I = 1 To UBound(Arr) For I = 1 To UBound(Arr)
11 9D-1242-004 NV-D982PA G 141002 Tem = Arr(I, 1) & Arr(I, 2) & Arr(I, 3) Tem = Arr(I, 1) & Arr(I, 2) & Arr(I, 3)
12 9E-1164-004 NV-D982PD - If Not Dic.exists(Tem) Then If Not Dic.exists(Tem) Then
13 9D-1246-004 NV-Y021PS E 141030 Dic.Add Tem, Empty Dic.Add Tem, Arr(I, 4)
14 9A-1186-004 NV-Y733P G End If End If
15 9A-1459-004 NV-Y750PB F 141002 Next Next
16 95-1184-004 NV-Y751PA K 141002 With Sheet46 With Sheet46
17 97-1297-004 NV-Y876PD J dArr = .Range("A5", .[A65536].End(3)).Resize(, 4).Value dArr = .Range("A5", .[A65536].End(3)).Resize(, 4).Value
18 91-1836-004 NV-Y876PF E 141002 End With End With
19 92-1858-004 NV-Y881PC E For I = 1 To UBound(dArr) For I = 1 To UBound(dArr)
20 9A-1284-004 NV-Y881PM D 141030 Tem = dArr(I, 1) & dArr(I, 2) & dArr(I, 3) Tem = dArr(I, 1) & dArr(I, 2) & dArr(I, 3)
21 9A-1263-004 NV-Y884P G If Dic.exists(Tem) Then If Dic.exists(Tem) Then
22 9C-1078-004 NV-Y895P J 141030 dArr(I, 4) = Sheet46.Range("G4").Value dArr(I, 4) = Dic.Item(Tem)
23 92-1738-004 NV-Y896PB M 141002 End If End If
24 95-1012-004 NV-Y896PK D 141030 Next Next
25 91-1289-004 NV-Y898P J 141002 With Sheet46 With Sheet46
26 .[A5].Resize(I - 1, 4) = dArr .[A5].Resize(I - 1, 4) = dArr
27 End With End With
28 End Sub End Sub
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

46

You might also like