giúp dùm mình cập nhật tên &tính tổng số lượng trong từng file (1 người xem)

Liên hệ QC

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

thuquananlac

Thành viên mới
Tham gia
7/3/11
Bài viết
8
Được thích
0
Bạn nào biết giúp mình code này với:
tình hình là mình có 4 file trong cùng một thư mục(file1.xls,file2.xls,file3.xls,tong.xls),bây giờ mình muốn khi nhập tên sản phẩm và số lượng ở từng file(file1,file2,file3) thì ở file tổng sẽ tự động cập nhật về tên sản phẩm và tính tổng số lượng của từng file. (file đính kèm bên dưới).
mình chân thành cám ơn trc.
 

File đính kèm

Bạn cho code này vào từng file, dùng sự kiện nào thì tùy bạn, nhưng theo mình thì nên dùng BeforeClose.

Chú ý là mình lấy cái số 1, 2, 3 của tên file để làm điều kiên, nếu thay đổi tên file thì code cóc có chạy

PHP:
Sub tong()
Dim dl, tim, i, j, tong, fn
dl = Sheet1.Range(Sheet1.[a2], Sheet1.[a65536].End(3)).Resize(, 2)
fn = ThisWorkbook.Name
fn = Val(Mid(fn, Len(fn) - InStrRev(fn, ".") + 2, 1))
Workbooks.Open ThisWorkbook.Path & "\tong.xls"
With Workbooks("tong.xls").Sheets("sheet1")
  For i = 1 To UBound(dl)
    Set tim = .[a:a].Find(dl(i, 1), , , xlWhole)
    If Not tim Is Nothing Then
      tim.Offset(, fn) = tim.Offset(, fn) + dl(i, 2)
    Else
      With .[a65536].End(3)
        .Offset(1) = dl(i, 1)
        .Offset(1, fn) = dl(i, 2)
      End With
    End If
  Next
End With
Workbooks("tong.xls").Close True
End Sub
 
Upvote 0
Bạn cho code này vào từng file, dùng sự kiện nào thì tùy bạn, nhưng theo mình thì nên dùng BeforeClose.

Chú ý là mình lấy cái số 1, 2, 3 của tên file để làm điều kiên, nếu thay đổi tên file thì code cóc có chạy

PHP:
Sub tong()
Dim dl, tim, i, j, tong, fn
dl = Sheet1.Range(Sheet1.[a2], Sheet1.[a65536].End(3)).Resize(, 2)
fn = ThisWorkbook.Name
fn = Val(Mid(fn, Len(fn) - InStrRev(fn, ".") + 2, 1))
Workbooks.Open ThisWorkbook.Path & "\tong.xls"
With Workbooks("tong.xls").Sheets("sheet1")
  For i = 1 To UBound(dl)
    Set tim = .[a:a].Find(dl(i, 1), , , xlWhole)
    If Not tim Is Nothing Then
      tim.Offset(, fn) = tim.Offset(, fn) + dl(i, 2)
    Else
      With .[a65536].End(3)
        .Offset(1) = dl(i, 1)
        .Offset(1, fn) = dl(i, 2)
      End With
    End If
  Next
End With
Workbooks("tong.xls").Close True
End Sub
Làm kiểu này là làm ngược! Lý ra code phải ở file tong.xls mới đúng ---> Tức người ta nhập gì ở file con thây kệ họ, khi mở file tong.xls thì lập tức cập nhật
------------
Nhưng nói chung bài này dùng code e rằng dở ẹc... PivotTable cho chắc bắp. Kiểu vầy đây:


Untitled.jpg


























Muốn cập nhật, chỉ việc click phải vào vùng PivotTable, chọn Refresh là xong!
Xem file
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom