Tự động cập nhật dữ liệu thêm mới từ sheet này sang sheet khác (1 người xem)

Liên hệ QC

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

JungSangAh

Thành viên mới
Tham gia
2/6/18
Bài viết
43
Được thích
14
Em xin chào các anh chị!
Em có một file đính kèm sau đây ạ.
Em muốn mỗi lần dữ liệu trên các cột từ sheet DATA được thêm mới thì nó sẽ tự động được cập nhật giá trị vào các ô màu xanh trên sheet "Phiếu" bằng VBA.
Rất mong nhận được sự giúp đỡ của các anh chị trong diễn đàn ạ.
 

File đính kèm

Em xin chào các anh chị!
Em có một file đính kèm sau đây ạ.
Em muốn mỗi lần dữ liệu trên các cột từ sheet DATA được thêm mới thì nó sẽ tự động được cập nhật giá trị vào các ô màu xanh trên sheet "Phiếu" bằng VBA.
Rất mong nhận được sự giúp đỡ của các anh chị trong diễn đàn ạ.

+ Code cho Sheet2:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$5" Then
        Call abc
    End If
End Sub
+ Code cho Module:
PHP:
Sub abc()
    Dim LR, Cll
    LR = Sheets("DATA").Range("A2").End(xlDown).Row
    For Each Cll In Sheets("DATA").Range("C2:C" & LR)
        If Cll = Sheet2.[c5] Then
            With Sheet2
                .[c14] = Cll.Offset(, -2).Value
                .[c15] = Cll.Offset(, -1).Value
                .[c17] = Cll.Offset(, 1).Value
            End With
        End If
    Next
End Sub
Bạn có thể cụ thể trong File. Chọn C5
 

File đính kèm

Upvote 0
Em xin chào các anh chị!
Em có một file đính kèm sau đây ạ.
Em muốn mỗi lần dữ liệu trên các cột từ sheet DATA được thêm mới thì nó sẽ tự động được cập nhật giá trị vào các ô màu xanh trên sheet "Phiếu" bằng VBA.
Rất mong nhận được sự giúp đỡ của các anh chị trong diễn đàn ạ.
Chỉ gán giá trị vào 4 ô thôi có cần dùng VBA không?
 

File đính kèm

Upvote 0
+ Code cho Sheet2:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$5" Then
        Call abc
    End If
End Sub
+ Code cho Module:
PHP:
Sub abc()
    Dim LR, Cll
    LR = Sheets("DATA").Range("A2").End(xlDown).Row
    For Each Cll In Sheets("DATA").Range("C2:C" & LR)
        If Cll = Sheet2.[c5] Then
            With Sheet2
                .[c14] = Cll.Offset(, -2).Value
                .[c15] = Cll.Offset(, -1).Value
                .[c17] = Cll.Offset(, 1).Value
            End With
        End If
    Next
End Sub
Bạn có thể cụ thể trong File
Em xin cảm ơn anh đã bớt chút thời gian giải đáp giùm em ạ. Chúc anh tuần mới thuận lợi ạ.
 
Upvote 0
Em xin chào các anh chị!
Em có một file đính kèm sau đây ạ.
Em muốn mỗi lần dữ liệu trên các cột từ sheet DATA được thêm mới thì nó sẽ tự động được cập nhật giá trị vào các ô màu xanh trên sheet "Phiếu" bằng VBA.
Rất mong nhận được sự giúp đỡ của các anh chị trong diễn đàn ạ.
Tôi thiết kế lại mẫu cho phù hợp với việc nhập liệu tuần tự theo nội dung.
Sao có cái vụ nhập ký tự phiếu không giống nhau vậy (PGTT, PGMN).
Sheet2 vùng bên dưới Cái gì cần điền nội dung vào tôi mới biết mà có góp ý cho phù hợp (có thể lấy danh mục có sẳn chỉ việc tìm chọn nhập liệu cho nhanh).
 

File đính kèm

Upvote 0
Arr = Sheets("DATA").Range("A60000").End(xlUp).Resize(, 4).Value
Anh cho em hỏi giá trị 4 trong Resize có ý nghĩa gì được ko ạ?
Cứ coi như 4 cột đi.
Resize(,4) là viết tắt của Resize(0,4)
Arr = Sheets("DATA").Range("A60000").End(xlUp).Resize(, 4).Value
Từ ô A60000 "nhảy dựng lên trên" đến ô đầu tiên có dữ liệu (ô dưới cùng trong cột A có dữ liệu), từ đó mở rộng ra 4 cột, gán giá trị của vùng vừa mở rộng đó vào Arr.
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi thiết kế lại mẫu cho phù hợp với việc nhập liệu tuần tự theo nội dung.
Sao có cái vụ nhập ký tự phiếu không giống nhau vậy (PGTT, PGMN).
Sheet2 vùng bên dưới Cái gì cần điền nội dung vào tôi mới biết mà có góp ý cho phù hợp (có thể lấy danh mục có sẳn chỉ việc tìm chọn nhập liệu cho nhanh).

Dạ vâng. File gốc với dữ liệu giả định của em như file kèm theo ạ.

Mục đích của em là tự động cập nhật dữ liệu thêm mới trong sheet NKC các cột : số phiếu,ngày gửi,ngày trả,số lượng vào các nội dung tương ứng trong sheet"h1".
 
Upvote 0
Cứ coi như 4 cột đi.
Resize(,4) là viết tắt của Resize(0,4)
Arr = Sheets("DATA").Range("A60000").End(xlUp).Resize(, 4).Value
Từ ô A60000 "nhảy dựng lên trên" đến ô đầu tiên có dữ liệu (ô dưới cùng trong cột A có dữ liệu), từ đó mở rộng ra 4 cột, gán giá trị của vùng vừa mở rộng đó vào Arr.

Vâng. em cảm ơn anh ạ.
 
Upvote 0

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom