Duyệt tất cả các worksheets, rồi thống kê vào 1 worksheet (1 người xem)

  • Thread starter Thread starter qdtoday
  • Ngày gửi Ngày gửi
Liên hệ QC

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

qdtoday

Thành viên chính thức
Tham gia
8/6/16
Bài viết
58
Được thích
21
Mình có file đính kèm bên dưới
File bao gồm nhiều worksheets chứa thông tin bán hàng (Khach1, Khach2,...)
Cuối mỗi ngày, mình phải làm 1 thống kê.

Làm sao để duyệt hết các worksheets và tổng hợp vào 1 worksheet?

Vài thông tin cho các bạn dễ hình dung:
  • Có tất cả 4 mặt hàng: DP, CSC, KAL, ASIA
  • Mã số dùng chung cho 4 mặt hàng (Tức là 1 mã số có thể xài lại 4 lần ứng với 4 mặt hàng)
Mong các bác giúp.:(
 

File đính kèm

Mình có file đính kèm bên dưới
File bao gồm nhiều worksheets chứa thông tin bán hàng (Khach1, Khach2,...)
Cuối mỗi ngày, mình phải làm 1 thống kê.

Làm sao để duyệt hết các worksheets và tổng hợp vào 1 worksheet?

Vài thông tin cho các bạn dễ hình dung:
  • Có tất cả 4 mặt hàng: DP, CSC, KAL, ASIA
  • Mã số dùng chung cho 4 mặt hàng (Tức là 1 mã số có thể xài lại 4 lần ứng với 4 mặt hàng)
Mong các bác giúp.:(

Bạn làm ví dụ 01 bảng đi, hiểu quy luật thì mới code cho bạn được.
 
Upvote 0
Mình quay cái video luôn, để pác dễ hình dung.
Gửi pác xem qua:
 
Upvote 0
Tạm thời là vầy; có gì sẽ điều chỉnh tiếp;

Nhớ cho macro chạy:
 

File đính kèm

Upvote 0
Tạm thời là vầy; có gì sẽ điều chỉnh tiếp;

Nhớ cho macro chạy:
Sao mình thêm thử hàng ASIA thì nó ko nhận ra. ASIA nó hơi đặc biệt, nó xài hậu tố khác với 3 thằng kia. Pác xem hình bên dưới:

1nbaUD1.png
 
Upvote 0
Ờ hén! Mình xin lỗi vì chưa kỹ chổ này;
PHP:
Sub ThongKeNgay()
 Dim Sh As Worksheet, Rng As Range, sRng As Range
 Dim MyAdd As String, fAlf As String, lAlf As String
 Dim VTr As Byte, Cot As Byte, Col As Integer, Tmr As Double
 Dim J As Integer
 Const GN As String = "-"
 Sheets("ThongKe").Select:              Tmr = Timer()
 Range("B4:AH99").ClearContents
 For Each Sh In ThisWorkbook.Worksheets
    If Left(Sh.Name, 5) = "Khach" Then
        Set Rng = Union(Sh.Columns("b:B"), Sh.Columns("j:J"))
        Set sRng = Rng.Find(GN, , xlFormulas, xlPart)
        If Not sRng Is Nothing Then
            MyAdd = sRng.Address
            Do
                VTr = InStr(sRng.Value, GN)
                fAlf = Trim(Left(sRng.Value, VTr - 1))
                lAlf = Trim(Mid(sRng.Value, VTr + 1, 9))
                Cot = Switch(fAlf = "DP", 2, fAlf = "CSC", 11, fAlf = "KAL", 20, fAlf = "ASIA", 29)
                If fAlf <> "ASIA" Then                  '**'
                    Col = Switch(lAlf = "TN", 0, lAlf = "VANG", 2, lAlf = "SUA", 4, lAlf = "GO", 6)
                Else
                    Col = Switch(lAlf = "TRANG", 0, lAlf = "TRANGSUA", 2, lAlf = "VANGO", 4, lAlf = "GPE.COM", 6)
                End If                                  '**'
                For J = 1 To 99
                    If sRng.Offset(J).Value = "" Then Exit For
                    If IsNumeric(Left(sRng.Offset(J).Value, 2)) Then
                        Cells(99, Cot + Col).End(xlUp).Offset(1).Resize(, 2).Value = _
                            sRng.Offset(J).Resize(, 2).Value
                    End If
                Next J
                Set sRng = Rng.FindNext(sRng)
            Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
        End If
    End If
 Next Sh
 MsgBox Timer() - Tmr
End Sub
 
Upvote 0
Pác chạy thử file dưới xem, nó vẫn chưa tìm ra được ASIA. :confused:
 

File đính kèm

Upvote 0
Mình có file đính kèm bên dưới
File bao gồm nhiều worksheets chứa thông tin bán hàng (Khach1, Khach2,...)
Cuối mỗi ngày, mình phải làm 1 thống kê.

Làm sao để duyệt hết các worksheets và tổng hợp vào 1 worksheet?

Vài thông tin cho các bạn dễ hình dung:
  • Có tất cả 4 mặt hàng: DP, CSC, KAL, ASIA
  • Mã số dùng chung cho 4 mặt hàng (Tức là 1 mã số có thể xài lại 4 lần ứng với 4 mặt hàng)
Mong các bác giúp.:(
Tôi thấy cấu trúc các bảng của từng khách hàng là giống nhau tại sao bạn không thêm cột ngày, mặt hàng và cột tên khách hàng rồi nhập theo chiều dọc trong 1 sheet cho dễ theo dõi.

Nếu có vài trăm khách hàng theo dõi nhiều ngày thì bạn làm cách nào ?????
 
Upvote 0
Bạn phải làm sao để cấu trúc 2 trang còn lại giống hệt (cấu trúc) của trang 'Khach2' là xong thôi;

Đúng là có thể nhốt chung các khách vô 1 trang tính thôi (vô 'Khach02' í)
 
Upvote 0
Tôi thấy cấu trúc các bảng của từng khách hàng là giống nhau tại sao bạn không thêm cột ngày, mặt hàng và cột tên khách hàng rồi nhập theo chiều dọc trong 1 sheet cho dễ theo dõi.
Nếu có vài trăm khách hàng theo dõi nhiều ngày thì bạn làm cách nào ?????
ah tại vì số lượng Bảng ko có định, có khi 3, có khi 4, khi 5, 6..
Để mai mình thử làm theo gợi ý của bạn xem.

Bạn phải làm sao để cấu trúc 2 trang còn lại giống hệt (cấu trúc) của trang 'Khach2' là xong thôi;
Đúng là có thể nhốt chung các khách vô 1 trang tính thôi (vô 'Khach02' í)
ah mình hiểu rồi. It works! Thank you.
 
Lần chỉnh sửa cuối:
Upvote 0
Gợi í cho bạn trước khi đi ngủ:

Mỗi khách ta dành 07 cột; Cùng với 1 cột trống (để fân cách)
Như vậy nếu bạn xài E2003 cũng được 255/8 khách.
 
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom