Sub Aged_update()
Dim C1, C2, C3, C4, C5, C6 As String
Dim R1, R2 As Long
Dim r As Range
Lnglastrow = Cells(Rows.Count, "B").End(xlUp).Row
Set Rng = Range("B2:B" & Lnglastrow)
For Each i In Rng
i.Select
Select Case i.Offset(0, 3).Value
Case Is = ""
Case Is = 0 '======= New Inventory not on yesterdays Aged Report , Date set to Today - 1
i.Offset(0, 2).Value = Format("=TODAY()-1", "dd / mm / yyy")
i.Offset(0, 3).Value = ""
i.Offset(0, 4).Value = 0
Case Is = 1 '======= Material appear on yesterdays aged report with 1 entry (only one Date of receipt)
C1 = i.Offset(0, 1).Value
C2 = i.Offset(1, 1).Value
R2 = C1 - C2
'======= Checks if todays Quantites match with yesterdays, if Yes deletes line and leaves yesterday entry on report.
If C1 = C2 Then
i.Offset(1, 4).Value = R2
i.EntireRow.Delete
Else
'======= Check if Todays is Greater than yesterdays, if Yes calculates the new input and sets it as todays date
If C1 > C2 Then
C1 = C1 - C2
i.Offset(0, 1).Value = C1
i.Offset(0, 2).Value = Format("=TODAY()-1", "dd / mm / yyy")
i.Offset(0, 3).Value = ""
i.Offset(0, 4).Value = R2
'i.Offset(1, 4).Value = R2
Else
'======= Checks to see if Todays Value is less than yesterdays (ships). Sets yesterday entry to todays qunatity keeping the same date.
If C1 < C2 Then
i.Offset(1, 1).Value = C1
i.Offset(1, 4).Value = R2
i.EntireRow.Delete
End If
End If
End If
Case Is = 2
C1 = i.Offset(0, 1).Value ' Todays total Qunatity
C2 = i.Offset(1, 1).Value ' YEsterdays 1 line Quantity
C3 = i.Offset(2, 1).Value ' Yesterdays 2 line quantity
R1 = C2 + C3
R2 = C1 - R1
'======= Checks if todays Quantites match with yesterdays, if Yes deletes line and leaves yesterday entry on report.
If C1 = R1 Then
i.Offset(1, 4).Value = R2
i.Offset(2, 4).Value = R2
i.EntireRow.Delete
Else
'======= Check if Todays is Greater than yesterdays, if Yes calculates the new input and sets it as todays date
If C1 > R1 Then
C1 = C1 - R1
i.Offset(0, 1).Value = C1
i.Offset(0, 2).Value = Format("=TODAY()-1", "dd / mm / yyy")
i.Offset(0, 3).Value = ""
i.Offset(0, 4).Value = R2
Else
' Today is Less than yesterday
'======= Checks to see if Todays Value is less than yesterdays (ships). Sets yesterday entry to todays qunatity keeping the same date.
R2 = R1 - C1 ' R2 = Ships
If C2 >= R2 Then
C2 = C2 - R2
i.Offset(1, 1).Value = C2
i.EntireRow.Delete
Else
If C2 + C3 >= R2 Then
R2 = R2 - C2
C3 = C3 - R2
i.Offset(2, 1).Value = C3
i.Offset(1, 0).EntireRow.Delete
i.EntireRow.Delete
Else
End If
End If
End If
End If
Case Is = 3
C1 = i.Offset(0, 1).Value ' Todays total Qunatity
C2 = i.Offset(1, 1).Value ' YEsterdays 1 line Quantity
C3 = i.Offset(2, 1).Value ' Yesterdays 2 line quantity
C4 = i.Offset(3, 1).Value ' Yesterdays 3 Line Quantity
R1 = C2 + C3 + C4
R2 = C1 - R1
'======= Checks if todays Quantites match with yesterdays, if Yes deletes line and leaves yesterday entry on report.
If C1 = R1 Then
i.Offset(1, 4).Value = R2
i.EntireRow.Delete
Else
'======= Check if Todays is Greater than yesterdays, if Yes calculates the new input and sets it as todays date
If C1 > R1 Then
C1 = C1 - R1
i.Offset(0, 1).Value = C1
i.Offset(0, 2).Value = Format("=TODAY()-1", "dd / mm / yyy")
i.Offset(0, 3).Value = ""
i.Offset(0, 4).Value = R2
Else
' Today is Less than yesterday
'======= Checks to see if Todays Value is less than yesterdays (ships). Sets yesterday entry to todays qunatity keeping the same date.
R2 = R1 - C1 ' R2 = Ships
If C2 >= R2 Then
C2 = C2 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C2
i.EntireRow.Delete
Else
If C2 + C3 >= R2 Then
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
R2 = R2 - C2
C3 = C3 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C3
'i.Offset(1, 0).EntireRow.Delete
i.EntireRow.Delete
Else
If C2 + C3 + C4 >= R2 Then
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
R2 = R2 - C2 - C3
C4 = C4 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C4
i.EntireRow.Delete
End If
End If
End If
End If
End If
Case Is = 4
C1 = i.Offset(0, 1).Value ' Todays total Qunatity
C2 = i.Offset(1, 1).Value ' YEsterdays 1 Line Quantity
C3 = i.Offset(2, 1).Value ' Yesterdays 2 Line quantity
C4 = i.Offset(3, 1).Value ' Yesterdays 3 Line Quantity
C5 = i.Offset(4, 1).Value ' Yesterdays 4 Line Quantity
R1 = C2 + C3 + C4 + C5
R2 = C1 - R1
'======= Checks if todays Quantites match with yesterdays, if Yes deletes line and leaves yesterday entry on report.
If C1 = R1 Then
i.Offset(1, 4).Value = R2
i.EntireRow.Delete
Else
'======= Check if Todays is Greater than yesterdays, if Yes calculates the new input and sets it as todays date
If C1 > R1 Then
C1 = C1 - R1
i.Offset(0, 1).Value = C1
i.Offset(0, 2).Value = Format("=TODAY()-1", "dd / mm / yyy")
i.Offset(0, 3).Value = ""
i.Offset(0, 4).Value = R2
Else
' Today is Less than yesterday
'======= Checks to see if Todays Value is less than yesterdays (ships). Sets yesterday entry to todays qunatity keeping the same date.
R2 = R1 - C1 ' R2 = Ships
If C2 >= R2 Then
C2 = C2 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C2
i.EntireRow.Delete
Else
If C2 + C3 >= R2 Then
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
R2 = R2 - C2
C3 = C3 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C3
'i.Offset(1, 0).EntireRow.Delete
i.EntireRow.Delete
Else
If C2 + C3 + C4 >= R2 Then
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
R2 = R2 - C2 - C3
C4 = C4 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C4
i.EntireRow.Delete
Else
If C2 + C3 + C4 + C5 >= R2 Then
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
R2 = R2 - C2 - C3 - C4
C5 = C5 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C5
i.EntireRow.Delete
End If
End If
End If
End If
End If
End If
Case Is = 5
C1 = i.Offset(0, 1).Value ' Todays total Qunatity
C2 = i.Offset(1, 1).Value ' YEsterdays 1 Line Quantity
C3 = i.Offset(2, 1).Value ' Yesterdays 2 Line quantity
C4 = i.Offset(3, 1).Value ' Yesterdays 3 Line Quantity
C5 = i.Offset(4, 1).Value ' Yesterdays 4 Line Quantity
C6 = i.Offset(5, 1).Value 'Yesterdays 5 Line Qunatity
R1 = C2 + C3 + C4 + C5 + C6
R2 = C1 - R1
'======= Checks if todays Quantites match with yesterdays, if Yes deletes line and leaves yesterday entry on report.
If C1 = R1 Then
i.Offset(1, 4).Value = R2
i.EntireRow.Delete
Else
'======= Check if Todays is Greater than yesterdays, if Yes calculates the new input and sets it as todays date
If C1 > R1 Then
C1 = C1 - R1
i.Offset(0, 1).Value = C1
i.Offset(0, 2).Value = Format("=TODAY()-1", "dd / mm / yyy")
i.Offset(0, 3).Value = ""
i.Offset(0, 4).Value = R2
Else
' Today is Less than yesterday
'======= Checks to see if Todays Value is less than yesterdays (ships). Sets yesterday entry to todays qunatity keeping the same date.
R2 = R1 - C1 ' R2 = Ships
If C2 >= R2 Then
C2 = C2 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C2
i.EntireRow.Delete
Else
If C2 + C3 >= R2 Then
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
R2 = R2 - C2
C3 = C3 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C3
'i.Offset(1, 0).EntireRow.Delete
i.EntireRow.Delete
Else
If C2 + C3 + C4 >= R2 Then
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
R2 = R2 - C2 - C3
C4 = C4 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C4
i.EntireRow.Delete
Else
If C2 + C3 + C4 + C5 >= R2 Then
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
R2 = R2 - C2 - C3 - C4
C5 = C5 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C5
i.EntireRow.Delete
Else
If C2 + C3 + C4 + C5 + C6 >= R2 Then
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
i.Offset(1, 0).EntireRow.Delete ' Delete Row 1 from yesterday
i.Offset(1, 0).EntireRow Delete ' Delete Row 1 From Yesterday
R2 = R2 - C2 - C3 - C4 - C5
C6 = C6 - R2
i.Offset(1, 4).Value = C1 - R1
i.Offset(1, 1).Value = C6
i.EntireRow.Delete
End If
End If
End If
End If
End If
End If
End If
Case Else
End Select
Next i
End Sub
Bookmarks