Em không biết viết code chỉ biết lấy của các bác về sử dụng thôi. Em tham lam một tí các bác cho em cả hai phương pháp để em tham khảo học hỏi thì tốt. Em cảm ơn bác nhiều!
Chỉ biết sử dụng code tốt là tốt rồi. Tôi có biết tí gì về viết code đâu.
Chia sẻ với mọi người file dưới. Kiến thức cho đi sẽ là kiến thức giá trị và được phát triển.
Bạn tham khảo code trong Module và file dưới.
Public Sub hello2HamDuyet()
Dim r As Long, k As Long, dArr(1 To 65000, 1 To 4), arr
Dim startDate As Date, endDate As Date, ub As Long, h As Boolean
arr = Sheet1.Range("A19:K" & Sheet1.[A65000].End(xlUp).Row).Value
ub = UBound(arr)
startDate = Sheet5.[F5].Value
endDate = Sheet5.[F6].Value
With Sheet4
.Range("A16
" & .UsedRange.SpecialCells(xlCellTypeLastCell).Row).ClearContents
k = 1
Do While WorksheetFunction.RoundDown(startDate, 0) <= _
WorksheetFunction.RoundDown(endDate, 0)
r = 1: h = False
dArr(k, 1) = k
dArr(k, 2) = startDate
dArr(k, 4) = " " 'Da xoa chu : Mua cong truong nghi
Do While arr(r, 1) <> arr(ub, 1)
If arr(r, 11) = startDate Then
dArr(k, 1) = k
dArr(k, 2) = startDate
dArr(k, 3) = arr(r, 2)
dArr(k, 4) = "Nghiêm thu công viêc " & arr(r, 3) ' Them chu : cong viec
k = k + 1: h = True
End If
If arr(r, 6) <= startDate And arr(r, 7) >= startDate Then
dArr(k, 1) = k
dArr(k, 2) = startDate
dArr(k, 3) = arr(r, 2)
dArr(k, 4) = "" & arr(r, 3) 'Bo chu : Thi cong
k = k + 1: h = True
End If
r = r + 1
Loop
startDate = startDate + 1
If Not h Then k = k + 1
Loop
Dim l, Tren, Duoi As Long
l = 1
For i = 1 To k - 1
Tren = dArr(i, 2)
Duoi = dArr(i + 1, 2)
If Tren <> "" Then Tam = Tren
If Tam = Duoi Then
dArr(i + 1, 2) = ""
End If
If dArr(i, 2) <> "" Then
dArr(i, 1) = l
l = l + 1
Else
dArr(i, 1) = ""
End If
Next i
.Range("A16
16").Resize(k).Value = dArr
End With
End Sub
Hướng dẫn sử dụng:
+) Nhập đầy đủ dữ liệu ở sheet "01-Danh muc" (cột B, C, F, G, K). Không xóa sheet "05-TTDV".
+) Sang sheet "04-Nhat ky" kích vào Ông sao vàng năm cánh. Code sẽ tự xóa dữ liệu cũ (nếu có) từ dòng 16 và tổng hợp dữ liệu mới vào các cột B, C, D từ dòng 16. Cùng 1 ngày sẽ có đầy đủ tất cả các công việc của những hạng mục thi công.
+) Tùy biến điều chỉnh bằng code ở trên. Sau khi sửa code thì ghi đè hoặc chèn code mới rồi gán vào hình Ông sao vàng năm cánh.