Tự động cập nhật thông tin theo mã khách hàng

Liên hệ QC

ronhoang2015

Thành viên mới
Tham gia
20/5/20
Bài viết
8
Được thích
2
em có một file thông tin gồm 4 sheet như file đính kèm, em chưa biết về VBA, làm thế nào để khi mình có dữ liệu như sheet "Tổng hợp" thì ở bên sheet "Danh sách Khách hàng" sẽ tự nhận các thông tin ở cột tương ứng được, nếu Khách hàng đăng ký 3 chương trình thì bên danh sách Khách hàng sẽ thêm 3 dòng với các dữ liệu tương ứng. có ai giúp em với ạ.
 

File đính kèm

  • Danh sach khach hang.xlsx
    25.7 KB · Đọc: 25
anh nói rõ hơn được không
 
Upvote 0
ý em là khi nhập dữ liệu vào sheet tổng hợp thì bên sheet danh sách khách hàng sẽ tự động nhận cập nhật các dữ liệu, nếu Khách hàng đăng ký 2 chương trình bên tổng hợp thì bên danh sách Khách hàng sẽ tự động sinh ra 2 dòng ghi dữ liệu ấy ạ
 
Upvote 0
Xin hỏi lại bạn là cột 'tần suất' có thể dời ra sau, đến trước cột 'Tổng cọng' được không, khi ý sẽ xài macro sự kiện các ô trên cột vừa dời đến này?
 
Upvote 0
Cái này viết 1 đoạn chương trình xử lý là xong bạn
 
Upvote 0
Xin hỏi lại bạn là cột 'tần suất' có thể dời ra sau, đến trước cột 'Tổng cọng' được không, khi ý sẽ xài macro sự kiện các ô trên cột vừa dời đến này?
dạ được ạ
Bài đã được tự động gộp:

Cái này viết 1 đoạn chương trình xử lý là xong bạn
em chưa biết về vba nên hơi khó đối với em ạ
 
Upvote 0
em có một file thông tin gồm 4 sheet như file đính kèm, em chưa biết về VBA, làm thế nào để khi mình có dữ liệu như sheet "Tổng hợp" thì ở bên sheet "Danh sách Khách hàng" sẽ tự nhận các thông tin ở cột tương ứng được, nếu Khách hàng đăng ký 3 chương trình thì bên danh sách Khách hàng sẽ thêm 3 dòng với các dữ liệu tương ứng. có ai giúp em với ạ.
Sheet Danh sách khách hàng có 2 cột Mã chu kỳ và Bội số mức nhưng sheet Tổng hợp và 2 sheet khác không có thì làm thế nào?
 
Upvote 0
Sheet Danh sách khách hàng có 2 cột Mã chu kỳ và Bội số mức nhưng sheet Tổng hợp và 2 sheet khác không có thì làm thế nào?
dạ mã chu kỳ thì dùng chung, chỉ có 1 mã cho nguyên 1 năm, còn bội số là số nằm trong cột mã tương ứng tên chương trình rút gọn ấy ạ
 
Upvote 0
Bạn xem file, macro sự kiện tại cột liền kề cột cuối
 

File đính kèm

  • DS KhachHang.xlsm
    38.4 KB · Đọc: 17
Upvote 0
dạ mã chu kỳ thì dùng chung, chỉ có 1 mã cho nguyên 1 năm, còn bội số là số nằm trong cột mã tương ứng tên chương trình rút gọn ấy ạ
Bạn giải thích giống như người khác cũng làm cùng ngành với bạn, nhìn dữ liệu là biết bạn muốn gì.
Ít nhất bạn cũng phải giải thích:
- Với file này thì Mã chu kỳ là gì?
- Sheet2, vùng I1 đến P1 là mã chương trình? Có còn thêm nhiều cột (Mã chương trình) nữa không?
- Từ tên chương trình, làm sao để xác định nó là Mã mức nào, Tên mức (Cho ví dụ)
- Lấy cái gì để biết Bội số mức (Cho ví dụ)
..................................................
 
Lần chỉnh sửa cuối:
Upvote 0
em tải về xong không sử dụng được, vào view, chọn macro nhưng bên trong bị trống
Macro nó đây mà:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rws As Long, lRw As Long
Dim Rng As Range, Cls As Range:        Dim MaCT As String

Rws = [G2].CurrentRegion.Rows.Count * 2
If Not Intersect(Target, [P3].Resize(Rws)) Is Nothing Then
    Set Rng = Cells(Target.Row, "H").Resize(, 8)
    For Each Cls In Rng
        If Cls.Value <> "" Then
            MaCT = Cells(1, Cls.Column).Value
            With Sheets("DS KHg")  '**
                lRw = .[A65500].End(xlUp).Row + 1
                .Cells(lRw, "A") = MaCT
                .Cells(lRw, "B").Value = _
                    Application.WorksheetFunction.VLookup(MaCT, Sheets("Mã CT").Range("A1:B11"), 2, False)   '**
                .Cells(lRw, "C") = Cells(Target.Row, "A").Value '    Mã NPP'
                .Cells(lRw, "D") = Cells(Target.Row, "B").Value '  Tên NPP'
                .Cells(lRw, "E") = Cells(Target.Row, "D").Value '  Mã Khách Hàng'
                .Cells(lRw, "F") = Cells(Target.Row, "E").Value '  Tên K Hàng'
                .Cells(lRw, "F") = "Mã Chu Kì"
                '???    '
            End With
        End If
    Next Cls
    MsgBox "Dã Chép Xong!", , "GPE.COM Xin Chào"
End If
End Sub
Bạn chú ý các dòng lệnh có đánh dấu, do tên trang tính mình đã đổi cho phù hợp với VBA
(Thằng nhóc vừa trang bị cho mình máy xịn xài 64 bít)
 
Upvote 0
Bạn giải thích giống như người khác cũng làm cùng ngành với bạn, nhìn dữ liệu là biết bạn muốn gì.
Ít nhất bạn cũng phải giải thích:
- Với file này thì Mã chu kỳ là gì?
- Sheet2, vùng I1 đến P1 là mã chương trình? Có còn thêm nhiều cột (Mã chương trình) nữa không?
- Từ tên chương trình, làm sao để xác định nó là Mã mức nào, Tên mức (Cho ví dụ)
- Lấy cái gì để biết Bội số mức (Cho ví dụ)
..................................................
- Mã chi kỳ thì chỉ có 1 mã duy nhất cho từng năm, qua năm sau chỉ thay thế 20 thành 21
- Mã chương trình thì chỉ có chừng đó chương trình, mã mức và tên mức chỉ khác nếu Khách hàng nằm chương trình WF và GVCS, còn lại thì đều giống nhau. mã mức là WF nếu Khách hàng đăng ký chương trình WF, GVCS nếu Khách hàng đăng ký chương trình GVCS.
Ví dụ: Khách hàng C064000364 đăng ký chương trình Kệ 4 tầng hoặc các chương trình ngoài WF và GVCS thì mã mức M1 và tên Mức 1
còn C064000364 đăng ký WF thì WF thì mã mức là WF và tên mức là Windows Frame.
- Bội số mức là dò từ dòng Khách hàng qua với cột chương trình có số 1 thì Khách hàng lấy bội số là 1, dò từ Khách hàng qua nếu đăng ký chương trình dò xuống nếu là 2 thì bội số của nó là 2. dòng Khách hàng gặp cột chương trình là bội số.
ví dụ: Khách hàng C064000364 dòng số 24 giao nhau với cột chương trình H nếu số 1 thì bội số là 1, nếu là số 2 thì bội số là 2
 
Upvote 0
- Mã chi kỳ thì chỉ có 1 mã duy nhất cho từng năm, qua năm sau chỉ thay thế 20 thành 21
- Mã chương trình thì chỉ có chừng đó chương trình, mã mức và tên mức chỉ khác nếu Khách hàng nằm chương trình WF và GVCS, còn lại thì đều giống nhau. mã mức là WF nếu Khách hàng đăng ký chương trình WF, GVCS nếu Khách hàng đăng ký chương trình GVCS.
Ví dụ: Khách hàng C064000364 đăng ký chương trình Kệ 4 tầng hoặc các chương trình ngoài WF và GVCS thì mã mức M1 và tên Mức 1
còn C064000364 đăng ký WF thì WF thì mã mức là WF và tên mức là Windows Frame.
- Bội số mức là dò từ dòng Khách hàng qua với cột chương trình có số 1 thì Khách hàng lấy bội số là 1, dò từ Khách hàng qua nếu đăng ký chương trình dò xuống nếu là 2 thì bội số của nó là 2. dòng Khách hàng gặp cột chương trình là bội số.
ví dụ: Khách hàng C064000364 dòng số 24 giao nhau với cột chương trình H nếu số 1 thì bội số là 1, nếu là số 2 thì bội số là 2
Đã "cố hiểu" nhưng chỉ hiểu được bấy nhiêu.

ví dụ: Khách hàng C064000364 dòng số 24 giao nhau với cột chương trình H nếu số 1 thì bội số là 1, nếu là số 2 thì bội số là 2
Bội số chương trình thì "ai cũng hiểu chỉ một người không hiểu", ví dụ của bạn không thấy chỗ nào có số 2.

Sheet "Tổng hợp", cột H là Tần suất, sao không nói là lấy Tần suất làm Bội số mức?
 

File đính kèm

  • Danh sach khach hang.xlsb
    31.9 KB · Đọc: 14
Upvote 0
Đã "cố hiểu" nhưng chỉ hiểu được bấy nhiêu.

ví dụ: Khách hàng C064000364 dòng số 24 giao nhau với cột chương trình H nếu số 1 thì bội số là 1, nếu là số 2 thì bội số là 2
Bội số chương trình thì "ai cũng hiểu chỉ một người không hiểu", ví dụ của bạn không thấy chỗ nào có số 2.

Sheet "Tổng hợp", cột H là Tần suất, sao không nói là lấy Tần suất làm Bội số mức?
Bội số 2 là khi Khách hàng đăng ký tham gia chương trình 2 lần thì mới có, ví dụ: Khách hàng tham gia 2 chương trình kệ 3 tầng thì nó sẽ hiển thị là số 2, còn trong file mình gửi thì đa số các Khách hàng chỉ đăng ký tham gia 1 chương trình, hoặc 1 chương này và 1 chương trình kia.
Cột tần suất là tần suất ghé thăm của NVBH trong 1 tháng, tần suất 4 là 4 lần trong tháng, tần suất 2 là 2 lần trong tháng (cách 1 tuần sẽ ghé thăm Khách hàng 1 lần)
mình mới tìm hiểu về VBA nên chưa giải quyết được nó :D
Bài đã được tự động gộp:

Macro nó đây mà:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rws As Long, lRw As Long
Dim Rng As Range, Cls As Range:        Dim MaCT As String

Rws = [G2].CurrentRegion.Rows.Count * 2
If Not Intersect(Target, [P3].Resize(Rws)) Is Nothing Then
    Set Rng = Cells(Target.Row, "H").Resize(, 8)
    For Each Cls In Rng
        If Cls.Value <> "" Then
            MaCT = Cells(1, Cls.Column).Value
            With Sheets("DS KHg")  '**
                lRw = .[A65500].End(xlUp).Row + 1
                .Cells(lRw, "A") = MaCT
                .Cells(lRw, "B").Value = _
                    Application.WorksheetFunction.VLookup(MaCT, Sheets("Mã CT").Range("A1:B11"), 2, False)   '**
                .Cells(lRw, "C") = Cells(Target.Row, "A").Value '    Mã NPP'
                .Cells(lRw, "D") = Cells(Target.Row, "B").Value '  Tên NPP'
                .Cells(lRw, "E") = Cells(Target.Row, "D").Value '  Mã Khách Hàng'
                .Cells(lRw, "F") = Cells(Target.Row, "E").Value '  Tên K Hàng'
                .Cells(lRw, "F") = "Mã Chu Kì"
                '???    '
            End With
        End If
    Next Cls
    MsgBox "Dã Chép Xong!", , "GPE.COM Xin Chào"
End If
End Sub
Bạn chú ý các dòng lệnh có đánh dấu, do tên trang tính mình đã đổi cho phù hợp với VBA
(Thằng nhóc vừa trang bị cho mình máy xịn xài 64 bít)
em thấy có code rồi, lúc nhấn alt+f11 ở sheet Tổng hợp mới thấy. :D . mới tìm hiểu về VBA nên chưa hiểu lắm :D. em cảm ơn anh.
 
Upvote 0
Bội số 2 là khi Khách hàng đăng ký tham gia chương trình 2 lần thì mới có, ví dụ: Khách hàng tham gia 2 chương trình kệ 3 tầng thì nó sẽ hiển thị là số 2, còn trong file mình gửi thì đa số các Khách hàng chỉ đăng ký tham gia 1 chương trình, hoặc 1 chương này và 1 chương trình kia.
Như vậy, các con số trong vùng từ cột I đến P không hoàn toàn là số 1, có thể có số 2, 3 và các số này là Bội số mức?
Các dữ liệu khác đã lấy trong File bài #14 đã đúng chưa?
 
Upvote 0
Như vậy, các con số trong vùng từ cột I đến P không hoàn toàn là số 1, có thể có số 2, 3 và các số này là Bội số mức?
Các dữ liệu khác đã lấy trong File bài #14 đã đúng chưa?
các dữ liệu khác thì nó lấy như bài 14 là đúng rồi @Ba Tê
Bài đã được tự động gộp:

vba dùng để copy dữ liệu từ sheet này qua sheet khác thì nó như thế nào vậy nhỉ? hỏi google rồi mà chưa ra
 
Upvote 0
vba dùng để copy dữ liệu từ sheet này qua sheet khác thì nó như thế nào vậy nhỉ? hỏi google rồi mà chưa ra
1:= Đầu câu nên viết bông.
2:= Bạn không chép toàn bộ trang này sang trang kia ấy chứ?
:D }}}}} Khi đã không phải thì vùng chép là như thế nào & đích đến của khối chép là như thế nào?
$$$$@
 
Upvote 0
Web KT

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

Back
Top Bottom