Đề tài đã lâu không biết còn cần nữa không
mình có bài như thế này,có ngày bắt đầu,tổng số ngày cần hoàn thành,làm cách nào để tính ra ngày kết thúc,mà phải trừ chủ nhật và ngày lễ ra nha,giúp mình với....
đã lâu rồi, không biết bạn còn cần nữa không, thôi thì cứ đưa lên đại, chắc có thành viên cũng đang cần,
nếu bị mất code thì nhập đoạn code dưới vào
Public Function NgayKT(Tg1 As Date, SN As Double, Le As Range, Tf As Boolean) As Date
Dim ChuNhat As Byte, a, i, X, Y, Z, Cn, CnC, N As Integer, Nt As Date
X = 0
Y = 0
If Tf = True Then
ChuNhat = 1
Else
ChuNhat = 7
End If
For Each X In Le
Z = Z + 1
Next
For i = Tg1 To Tg1 + SN Step 1 'Vong lap thoi gian
If Weekday(i, vbSunday) = 1 Or Weekday(i, vbSunday) = ChuNhat Then 'Tim So ngay chu nhat
Cn = Cn + 1
End If
For a = 0 To Z Step 1 ' So Sanh Ngay le
If i = Le(a) Then 'Tim So ngay le
Y = Y + 1
End If
Next a
Next i
Nt = Tg1 + SN + Cn + Y
For i = Tg1 + SN + 1 To Nt Step 1 'Vong lap thoi gian
For a = 0 To Z Step 1
If i = Le(a) Then 'Tim So ngay le
N = N + 1
End If
Next a
If Weekday(i, vbSunday) = ChuNhat Or Weekday(i, vbSunday) = 1 Then
CnC = CnC + 1
End If
Next i
Nt = Nt + N + CnC
If Tf = True Then
If Weekday(Nt, sunday) = 1 Then
Nt = Nt + 1
End If
Else
Select Case Nt
Case Weekday(Nt, sunday) = 1
Nt = Nt + 1
Case Weekday(Nt, sunday) = 7
Nt = Nt + 2
Case Else
Nt = Nt
End Select
End If
Nt = Nt
For a = 0 To Z Step 1
If Nt = Le(a) Then
Nt = Nt + 1
Else
Nt = Nt
End If
Next
NgayKT = Nt
End Function