Giúp code tự động cập nhật dữ liệu sang sheet khác

Liên hệ QC

vanthinh3101

Thành viên tích cực
Tham gia
24/1/15
Bài viết
1,112
Được thích
1,436
Giới tính
Nam
Nghề nghiệp
Finance
Kính gửi tất cả mọi người,
Tôi đang gặp phải trường hợp cần giải quyết như sau:
- 2 sheets đầu tiên là dữ liệu ban đầu
- Sheets thứ 3 là để tổng hợp dữ liệu từ 2 sheets đầu với nguyên tắc sau:
+ Dữ liệu cột A từ A11 lấy từ dữ liệu của cột A từ A11 của 1 trong 2 sheets đầu
+ Dữ liệu vùng D:E từ D11:E11 từ dữ liệu vùng B11:C11 của sheets đầu tiên
+ Dữ liệu vùng F:G từ F11:G11 từ dữ liệu vùng B11:C11 của sheets thứ 2
+ Dữ liệu cột B từ B11 bằng tổng của cột D và F tương ứng
+ Dữ liệu cột C từ C11 bằng tổng của cột E và G tương ứng
Tôi muốn là khi mở sheets thứ 3 lên thì dữ liệu của sheets 3 sẽ tự động cập nhật giá trị theo quy tắc trên từ 2 sheets đầu.
Trường hợp mở lại sheets thứ 3 thì sẽ tự động xóa dữ liệu đã cập nhật lần trước và cập nhật lại lần mới.

Xin mọi người giúp đỡ cho.
 

File đính kèm

  • Update du lieu.xlsx
    27.2 KB · Đọc: 32
Kính gửi tất cả mọi người,
Tôi đang gặp phải trường hợp cần giải quyết như sau:
- 2 sheets đầu tiên là dữ liệu ban đầu
- Sheets thứ 3 là để tổng hợp dữ liệu từ 2 sheets đầu với nguyên tắc sau:
+ Dữ liệu cột A từ A11 lấy từ dữ liệu của cột A từ A11 của 1 trong 2 sheets đầu
+ Dữ liệu vùng D:E từ D11:E11 từ dữ liệu vùng B11:C11 của sheets đầu tiên
+ Dữ liệu vùng F:G từ F11:G11 từ dữ liệu vùng B11:C11 của sheets thứ 2
+ Dữ liệu cột B từ B11 bằng tổng của cột D và F tương ứng
+ Dữ liệu cột C từ C11 bằng tổng của cột E và G tương ứng
Tôi muốn là khi mở sheets thứ 3 lên thì dữ liệu của sheets 3 sẽ tự động cập nhật giá trị theo quy tắc trên từ 2 sheets đầu.
Trường hợp mở lại sheets thứ 3 thì sẽ tự động xóa dữ liệu đã cập nhật lần trước và cập nhật lại lần mới.

Xin mọi người giúp đỡ cho.

Sub này cho Module:
PHP:
Public Sub GPE()
Dim sArr(), dArr(1 To 31, 1 To 7), I As Long, K As Long
With Sheet1
    sArr = .Range("A11", .Range("A11").End(xlDown)).Resize(, 3).Value
    For I = 1 To UBound(sArr)
        dArr(I, 1) = sArr(I, 1)
        dArr(I, 4) = sArr(I, 2)
        dArr(I, 5) = sArr(I, 3)
    Next I
End With
With Sheet2
    sArr = .Range("A11", .Range("A11").End(xlDown)).Resize(, 3).Value
    For I = 1 To UBound(sArr)
        dArr(I, 6) = sArr(I, 2)
        dArr(I, 7) = sArr(I, 3)
        dArr(I, 2) = dArr(I, 4) + dArr(I, 6)
        dArr(I, 3) = dArr(I, 5) + dArr(I, 7)
    Next I
End With
With Sheet3
    .Range("A11:G11").Resize(31).ClearContents
    .Range("A11:G11").Resize(I - 1) = dArr
End With
End Sub
Muốn tự động thì chép cái này trong VBE của sheet3
PHP:
Private Sub Worksheet_Activate()
    GPE
End Sub
 
Upvote 0
Sub này cho Module:
PHP:
Public Sub GPE()
Dim sArr(), dArr(1 To 31, 1 To 7), I As Long, K As Long
With Sheet1
    sArr = .Range("A11", .Range("A11").End(xlDown)).Resize(, 3).Value
    For I = 1 To UBound(sArr)
        dArr(I, 1) = sArr(I, 1)
        dArr(I, 4) = sArr(I, 2)
        dArr(I, 5) = sArr(I, 3)
    Next I
End With
With Sheet2
    sArr = .Range("A11", .Range("A11").End(xlDown)).Resize(, 3).Value
    For I = 1 To UBound(sArr)
        dArr(I, 6) = sArr(I, 2)
        dArr(I, 7) = sArr(I, 3)
        dArr(I, 2) = dArr(I, 4) + dArr(I, 6)
        dArr(I, 3) = dArr(I, 5) + dArr(I, 7)
    Next I
End With
With Sheet3
    .Range("A11:G11").Resize(31).ClearContents
    .Range("A11:G11").Resize(I - 1) = dArr
End With
End Sub
Muốn tự động thì chép cái này trong VBE của sheet3
PHP:
Private Sub Worksheet_Activate()
    GPE
End Sub
Em cám ơn thầy đã giúp đỡ
 
Upvote 0
Giúp em file này với cũng là cùng cập nhật
Em muốn khi sửa tên khách ở sheet "Khach" thì những khách đã sửa cũng được sửa ở sheet "GiaoDich"
 

File đính kèm

  • SuaTenKhach.xlsm
    21.5 KB · Đọc: 5
Upvote 0
Web KT
Back
Top Bottom