Giúp code tự động cập nhật dữ liệu sang sheet khác (1 người xem)

Liên hệ QC

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

vanthinh3101

Thành viên tích cực
Tham gia
24/1/15
Bài viết
1,118
Được thích
1,452
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

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

Upvote 0
Web KT

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

Back
Top Bottom