choinodiba
Thành viên mới
- Tham gia
- 12/10/19
- Bài viết
- 17
- Được thích
- 6
Bạn làm ngược rồi, tôi bận nhiều việc nên không giúp được.Mình cần lấy dữ liệu từ sheet HoaDonBH vào Sheet Data gồm số lượng và đơn giá. Mọi người chỉ cho mình cách nào đó để lấy dữ liệu.
Chạy CodeMình cần lấy dữ liệu từ sheet HoaDonBH vào Sheet Data gồm số lượng và đơn giá. Mọi người chỉ cho mình cách nào đó để lấy dữ liệu.
Sub CapNhat()
Dim HoaDon(), Data(), Res()
Dim eRow&, eCol&, sRow&, sCol&, i&, jk&
Dim SoHD$, TenHang$, tmp$, TenKH$, DiaC$, SDT$, Tong As Double
With Sheets("HoaDonBan")
SoHD = .Range("E2").Value
TenKH = .Range("C3").Value
DiaC = .Range("C4").Value
SDT = .Range("G4").Value
eRow = .Cells(Rows.Count, 3).End(xlUp).Row
If Len(SoHD) = 0 Or eRow < 6 Then MsgBox ("Khong co du lieu"): Exit Sub
HoaDon = .Range("B6:F" & .Cells(Rows.Count, 2).End(xlUp).Row).Value
End With
With Sheets("Data")
eRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1
Data = .Range("A2:R" & eRow).Value
End With
With CreateObject("scripting.dictionary")
sRow = UBound(Data) - 1: sCol = UBound(Data, 2)
ReDim Res(1 To 1, 1 To sCol)
eRow = 0
For i = 3 To sRow
If SoHD = CStr(Data(i, 2)) Then
MsgBox ("Da cap nhat du lieu HoaDon: " & SoHD)
eRow = i: Exit For
End If
Next i
If eRow = 0 Then
MsgBox ("Da Them du lieu HoaDon: " & SoHD)
eRow = i
End If
For j = 7 To sCol
TenHang = Data(1, j)
If Len(TenHang) Then .Item(TenHang) = j
Next j
sRow = UBound(HoaDon)
For i = 1 To sRow
tmp = HoaDon(i, 1)
If Len(tmp) Then
If .exists(tmp) = True Then
jk = .Item(tmp)
Res(1, jk) = HoaDon(i, 3)
Res(1, jk + 1) = HoaDon(i, 4)
Tong = Tong + HoaDon(i, 5)
Else
MsgBox ("Sheet Data, khong co ten hang: " & tmp)
End If
Else
Exit For
End If
Next i
Res(1, 1) = CLng(Data(eRow - 1, 1)) + 1
Res(1, 2) = SoHD
Res(1, 3) = TenKH
Res(1, 4) = DiaC
Res(1, 5) = SDT
Res(1, 6) = Tong
With Sheets("Data")
.Range("A" & eRow + 1).Resize(, sCol) = Res
End With
End With
End Sub
STT | Mã KH | Tên Khách Hàng | Ngày sinh | Địa chỉ | Số ĐT |
1 | NKH00 | Nguyễn Khánh Huy | 1/13/1991 | 12 Chùa Bộc | 0911230911 |
2 | NKL00 | Nguyễn Khánh Lộc | 2/14/1992 | 412a | 0983406678 |
3 | NKL01 | Nguyễn Khánh Lan | 3/17/1993 | 4/12a Chùa Trầm | 0983406978 |
4 | HJL00 | Hồ Lan | 4/18/1994 | 01 Chùa Trăm Gian | 0983409278 |
5 | DFN00 | Dương Đỗ Ngân | 5/20/1995 | 03 Chùa Một Cột | 0983407548 |
6 | DTN00 | Du Đặng Thái Nam | 6/20/1996 | 21A Chùa Thiên Mụ | 0983007878 |
7 | CVA00 | Cỗ Văn Ẩn | 7/22/1997 | Chùa Tam Thanh | 0943408178 |
8 | HJL01 | Hoàng Lâm | 8/23/1998 | Chùa Trấn Quốc | 0903408478 |
STT | Số HD | Ngày | Mã KH | Tổng của HD | |||||
1 | 1610S1 | 8/13/2019 | NKH00 | 7 000 000 | |||||
2 | 1810S2 | 9/14/2019 | NKL00 | 700 000 | |||||
3 | 1810S2 | 9/21/2019 | NKL00 | 1,932,114,443 |
STT | SHD | Mã hàng | DVT | SoLuong | Dgia | Ttien | |||
1 | 1810S2 | 14x14x1.0 | C | 5 | 40000 | 200000 | |||
2 | 1810S2 | 16x16x1.1 | C | 10 | 50000 | 500000 | |||
3 | 1610S1 | 20x20x1.0 | C | 15 | 60000 | 900000 | |||
4 | 1610S1 | 16x16x1.1 | C | 20 | 70000 | 1400000 | |||
5 | 1610S1 | 16x16x1.4 | C | 25 | 80000 | 2000000 | |||
6 | 1610S1 | 16x16x1.0 | C | 30 | 90000 | 2700000 |