Code vba thống kê chi tiết. (2 người xem)

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

nguyenkhoadng

Thành viên hoạt động
Tham gia
15/6/11
Bài viết
179
Được thích
30
Chào các anh!

Em muốn nhờ các anh giúp em đoạn code thống kê chi tiết từng cấu kiện giống như file đính kèm.
Cụ thể: từ sheet "BTK", khi chạy code sẽ thống kê chi tiết từng cấu kiện và cho ra kết quả giống sheet "Ket qua"

Em cảm ơn các anh trước!
 

File đính kèm

Em muốn nhờ các anh viết giúp 1 đoạn code VBA với mục đích tạo 1 bảng tổng hợp các loại thép theo chi tiết từng cấu kiện (D1, D2, ...). giống bảng TỔNG HỢP THÉP bên sheet "Ket qua" (Từ U7:AA15)
Còn mấy cái hình thanh thép em group lại cho nó dễ quản lý, đỡ chạy lung tung đó anh.
 
Upvote 0
Không biết em trình bày ở bài #1, #4 có rõ chưa mà 23 lần tải vẫn chưa có anh nào hồi âm.
Nhờ các anh giúp với.
em cảm ơn!
 
Upvote 0
Không biết em trình bày ở bài #1, #4 có rõ chưa mà 23 lần tải vẫn chưa có anh nào hồi âm.
Nhờ các anh giúp với.
em cảm ơn!

tôi sẻ thử làm cho bạn
1- tôi sẻ bỏ mấy cái merge cell nha
2- bạn chỉ có D1 & D2 hay có nhiều loại D?
3- mấy cái phi6, phi8...vv. chỉ có bao nhiêu đó cái phi hay tùy?
4- bắt buộc phải xài vba hả? (cthức được ko?, vì cái này chắc là xài sumifs là được)
 
Lần chỉnh sửa cuối:
Upvote 0
Trước tiên em cảm ơn anh nhiều!

1. Nếu bỏ merge thì thay vào đó bằng tạo 1 cột ngay bên cạnh cột merge và ẩn cột này được không anh?
2. Tên cấu kiện là khác nhau, tùy thuộc vào từng hạng mục bốc tách khối lượng. (ví dụ như dầm thì có dầm D1, D2,...; cột thì có cột C1, C2,...; móng thì có móng M1, M2,...) nói chung phần tên này là tùy thuộc vào người dùng anh ah.
3. Phi thì tùy anh ah, chứ không phải bao nhiêu đó đâu. Nhiều lúc phi còn lặp đi lặp lại nữa (Vì tùy thuộc vào hình dạng mỗi thanh)
4. Vì bảng khối lượng lúc dài lúc ngắn, lúc có loại thép này, lúc có loại thép kia nên dùng vba tốt hơn dùng công thức anh ah.

Cảm ơn anh!
 
Upvote 0
Trước tiên em cảm ơn anh nhiều!

1. Nếu bỏ merge thì thay vào đó bằng tạo 1 cột ngay bên cạnh cột merge và ẩn cột này được không anh?
2. Tên cấu kiện là khác nhau, tùy thuộc vào từng hạng mục bốc tách khối lượng. (ví dụ như dầm thì có dầm D1, D2,...; cột thì có cột C1, C2,...; móng thì có móng M1, M2,...) nói chung phần tên này là tùy thuộc vào người dùng anh ah.
3. Phi thì tùy anh ah, chứ không phải bao nhiêu đó đâu. Nhiều lúc phi còn lặp đi lặp lại nữa (Vì tùy thuộc vào hình dạng mỗi thanh)
4. Vì bảng khối lượng lúc dài lúc ngắn, lúc có loại thép này, lúc có loại thép kia nên dùng vba tốt hơn dùng công thức anh ah.

Cảm ơn anh!

tôi sẻ chỉnh thêm cho giống với form của bạn,
bạn thử cho chạy code này xem
cái cột "riêng" (cột thứ 4) trong bảng kết quả là kết quả cột dồn của cột nào bên bảng thống kê?
Mã:
Sub tonghop()
Dim ng As Variant, kq(), i, j, k, h As Long, d As Object, tenCK As String
ng = [a7].Resize([b60000].End(3).Row, 18).Value
Set d = CreateObject("Scripting.Dictionary")
ReDim kq(1 To 6000, 1 To 7)

For i = 1 To UBound(ng)
    If Not IsEmpty(ng(i, 1)) Then tenCK = ng(i, 1)
    If Not d.exists(tenCK & ng(i, 9)) Then
        k = k + 1
        d.Add tenCK & ng(i, 9), k
        kq(k, 1) = ng(i, 1)
        kq(k, 2) = ng(i, 9)
        kq(k, 3) = ng(i, 16)
        kq(k, 4) = ng(i, 17)
    Else
    h = d.Item(tenCK & ng(i, 9))
    kq(h, 3) = kq(h, 3) + ng(i, 16)
    kq(h, 4) = kq(h, 4) + ng(i, 17)
    End If
    
    Select Case ng(i, 9)
        Case Is <= 10
            kq(k, 5) = kq(k, 5) + ng(i, 18) ' nho hon 10
        Case 11 To 18
            kq(k, 6) = kq(k, 6) + ng(i, 18)
        Case Is > 18
            kq(k, 7) = kq(k, 7) + ng(i, 18)
    End Select
Next
If k Then [u19].Resize(k, 7).Value = kq
Set d = Nothing
End Sub
 
Upvote 0
Trước tiên em cảm ơn anh nhiều!

1. Nếu bỏ merge thì thay vào đó bằng tạo 1 cột ngay bên cạnh cột merge và ẩn cột này được không anh?
2. Tên cấu kiện là khác nhau, tùy thuộc vào từng hạng mục bốc tách khối lượng. (ví dụ như dầm thì có dầm D1, D2,...; cột thì có cột C1, C2,...; móng thì có móng M1, M2,...) nói chung phần tên này là tùy thuộc vào người dùng anh ah.
3. Phi thì tùy anh ah, chứ không phải bao nhiêu đó đâu. Nhiều lúc phi còn lặp đi lặp lại nữa (Vì tùy thuộc vào hình dạng mỗi thanh)
4. Vì bảng khối lượng lúc dài lúc ngắn, lúc có loại thép này, lúc có loại thép kia nên dùng vba tốt hơn dùng công thức anh ah.

Cảm ơn anh!
Đã cố làm cho kết quả giống của bạn, muốn Merge thì làm thủ công nhé.
 

File đính kèm

Upvote 0
tôi sẻ chỉnh thêm cho giống với form của bạn,
bạn thử cho chạy code này xem
cái cột "riêng" (cột thứ 4) trong bảng kết quả là kết quả cột dồn của cột nào bên bảng thống kê?

Cột "riêng" (cột X) là lấy kết quả rừ cột R bên bảng thống kê anh ah.
Trong code anh giúp còn thiếu phần "Tổng trọng lượng" cho từng cấu kiện.
Các phần trọng lượng <=10; <=18; >18 cũng hiện kết quả không đúng anh ah. ở mỗi cột chỉ hiện 1 kết quả thôi anh. (giống công thức trong cột Y, Z, AA bên sheet "Ket qua")
 
Upvote 0

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

Back
Top Bottom