Cần anh chị giúp cách vẽ biểu đồ huy động máy móc thi công

Liên hệ QC

khanhdtce

Thành viên mới
Tham gia
15/4/13
Bài viết
14
Được thích
2
Mình đang làm tiến độ thi công, đến phần vẽ biểu đồ huy động máy móc thiết bị thì không làm được. Mong anh chị giúp đỡ!

Việc cần giúp: Biểu diễn được sự có mặt của thiết bị trên timeline (vùng AC168: DO189)

Điều kiện đã có:
1. Dưới đường gantt công tác đã có số "2"
2. Vùng dữ liệu A8:W135 đã có danh sách và số lượng thiết bị máy móc tương ứng với các công việc

Mong anh chị bỏ chút ít thời gian để hướng dẫn giúp mình.

Xin cảm ơn mọi người!
 

File đính kèm

  • Tiến Độ P2.4 Cần Update Thiết Bị.xlsx
    128.9 KB · Đọc: 77
Mình đang làm tiến độ thi công, đến phần vẽ biểu đồ huy động máy móc thiết bị thì không làm được. Mong anh chị giúp đỡ!

Việc cần giúp: Biểu diễn được sự có mặt của thiết bị trên timeline (vùng AC168: DO189)

Điều kiện đã có:
1. Dưới đường gantt công tác đã có số "2"
2. Vùng dữ liệu A8:W135 đã có danh sách và số lượng thiết bị máy móc tương ứng với các công việc

Mong anh chị bỏ chút ít thời gian để hướng dẫn giúp mình.

Xin cảm ơn mọi người!
Có lẽ là cần phải điền tên + số lượng máy thiết bị ngay dưới thanh tiến độ chi tiết mới thuận tiện cho lập biểu đồ, file của bạn mới chỉ thống kê, chưa áp vào tiến độ.

Việc lập tiến độ thi công có lẽ là ms project tiện hơn excel
 
Có lẽ là cần phải điền tên + số lượng máy thiết bị ngay dưới thanh tiến độ chi tiết mới thuận tiện cho lập biểu đồ, file của bạn mới chỉ thống kê, chưa áp vào tiến độ.

Việc lập tiến độ thi công có lẽ là ms project tiện hơn excel
Lâu nay vẫn lập bằng Project, nhưng công trình này gặp ông CĐT tréo ngoe, cứ thích Excel và màu mè, chứ mình đâu có muốn vất vả thế này.
Cảm ơn bạn nhiều nha!
 
@khanhdtce
Bạn chèn thêm 1 sheet mới, đặt tên là "thongkeMTC" rồi chạy code dưới đây. Kết quả là bảng thống kê số lượng từng loại thiết bi theo tiến độ.
Việc lập biểu đồ từng loại MTC, bạn móc số liệu này sang là được.
Code bên dưới lập theo vùng dữ liệu của file bài 1, nếu dữ liệu thay đổi phải hiệu chỉnh lại
Mã:
Option Explicit

Sub thongkeMTC_()
Dim Chitiet
Dim tenMay, tkMay
Dim Tam
Dim rws, cls
Dim i, j, k, x, z, t

With Sheet1
    Chitiet = .Range("AC9:DO137")
    tenMay = .Range("A8:V8")
    tkMay = .Range("A9:V137")
    rws = UBound(Chitiet)
    cls = UBound(Chitiet, 2)
    t = UBound(tkMay, 2)
End With

With CreateObject("Scripting.Dictionary")
    For i = 1 To rws Step 3
        For j = 1 To cls
            If Chitiet(i, j) <> "" And Chitiet(i, j) > 0 Then
                For z = 1 To t
                    If tkMay(i, z) <> "" And tkMay(i, z) > 0 Then
                        If .Exists(tenMay(1, z)) = False Then
                            ReDim Tam(1 To cls)
                            Tam(j) = tkMay(i, z)
                            .Item(tenMay(1, z)) = Tam
                        Else
                            Tam = .Item(tenMay(1, z))
                            Tam(j) = Tam(j) + tkMay(i, z)
                            .Item(tenMay(1, z)) = Tam
                        End If
                    End If
                Next z
            End If
        Next j
    Next i
    
    Sheets("thongkeMTC").UsedRange.Clear
    Sheets("thongkeMTC").Range("A8").Resize(.Count, 1) = WorksheetFunction.Transpose(.Keys)
    Sheet1.Range("AC8:DO8").Copy Sheets("thongkeMTC").Range("C6")
    For i = 0 To .Count - 1
        Sheets("thongkeMTC").Range("C" & 8 + i).Resize(1, cls) = .Items()(i)
    Next i
    Sheets("thongkeMTC").UsedRange.Columns.AutoFit
End With
End Sub
 
@khanhdtce
Bạn chèn thêm 1 sheet mới, đặt tên là "thongkeMTC" rồi chạy code dưới đây. Kết quả là bảng thống kê số lượng từng loại thiết bi theo tiến độ.
Việc lập biểu đồ từng loại MTC, bạn móc số liệu này sang là được.
Code bên dưới lập theo vùng dữ liệu của file bài 1, nếu dữ liệu thay đổi phải hiệu chỉnh lại
Mã:
Option Explicit

Sub thongkeMTC_()
Dim Chitiet
Dim tenMay, tkMay
Dim Tam
Dim rws, cls
Dim i, j, k, x, z, t

With Sheet1
    Chitiet = .Range("AC9:DO137")
    tenMay = .Range("A8:V8")
    tkMay = .Range("A9:V137")
    rws = UBound(Chitiet)
    cls = UBound(Chitiet, 2)
    t = UBound(tkMay, 2)
End With

With CreateObject("Scripting.Dictionary")
    For i = 1 To rws Step 3
        For j = 1 To cls
            If Chitiet(i, j) <> "" And Chitiet(i, j) > 0 Then
                For z = 1 To t
                    If tkMay(i, z) <> "" And tkMay(i, z) > 0 Then
                        If .Exists(tenMay(1, z)) = False Then
                            ReDim Tam(1 To cls)
                            Tam(j) = tkMay(i, z)
                            .Item(tenMay(1, z)) = Tam
                        Else
                            Tam = .Item(tenMay(1, z))
                            Tam(j) = Tam(j) + tkMay(i, z)
                            .Item(tenMay(1, z)) = Tam
                        End If
                    End If
                Next z
            End If
        Next j
    Next i
   
    Sheets("thongkeMTC").UsedRange.Clear
    Sheets("thongkeMTC").Range("A8").Resize(.Count, 1) = WorksheetFunction.Transpose(.Keys)
    Sheet1.Range("AC8:DO8").Copy Sheets("thongkeMTC").Range("C6")
    For i = 0 To .Count - 1
        Sheets("thongkeMTC").Range("C" & 8 + i).Resize(1, cls) = .Items()(i)
    Next i
    Sheets("thongkeMTC").UsedRange.Columns.AutoFit
End With
End Sub
thanks bác nhiều lắm nha!!!
 
Web KT
Back
Top Bottom