I have a Macro with this code it runs fine it the file I saved it in, but when i try to run it on another excel file the code still runs but in the ChangeColor method, it doesn't fill the cells. It runs step by step fine it just doesn't fill the color. Here is my code.
Sub ChangeColor()
'---------------------------ChangeColor-------------------------
Dim rCell As Range
Worksheets("MSS Open Purchase Orders").Select
With Sheet1
For Each rCell In .Range("N4", .Cells(.Rows.Count, 14).End(xlUp)).Cells
If rCell.Value <= Date Then
rCell.Interior.Color = vbRed
ElseIf rCell.Value <= Date + 7 Then
rCell.Interior.Color = RGB(255, 102, 0)
ElseIf rCell.Value <= Date + 30 Then
rCell.Interior.Color = vbYellow
Else
rCell.Interior.Color = vbGreen
End If
Next rCell
End With
'------------------------------I-------------------------------
Worksheets("I").Select
With Sheet2
For Each rCell In .Range("N2", .Cells(.Rows.Count, 14).End(xlUp)).Cells
If rCell.Value <= Date Then
rCell.Interior.Color = vbRed
ElseIf rCell.Value <= Date + 7 Then
rCell.Interior.Color = RGB(255, 102, 0)
ElseIf rCell.Value <= Date + 30 Then
rCell.Interior.Color = vbYellow
Else
rCell.Interior.Color = vbGreen
End If
Next rCell
End With
'------------------------------O-------------------------------
Worksheets("O").Select
With Sheet3
For Each rCell In .Range("N2", .Cells(.Rows.Count, 14).End(xlUp)).Cells
If rCell.Value <= Date Then
rCell.Interior.Color = vbRed
ElseIf rCell.Value <= Date + 7 Then
rCell.Interior.Color = RGB(255, 102, 0)
ElseIf rCell.Value <= Date + 30 Then
rCell.Interior.Color = vbYellow
Else
rCell.Interior.Color = vbGreen
End If
Next rCell
End With
'------------------------------E-------------------------------
Worksheets("E").Select
With Sheet4
For Each rCell In .Range("N2", .Cells(.Rows.Count, 14).End(xlUp)).Cells
If rCell.Value <= Date Then
rCell.Interior.Color = vbRed
ElseIf rCell.Value <= Date + 7 Then
rCell.Interior.Color = RGB(255, 102, 0)
ElseIf rCell.Value <= Date + 30 Then
rCell.Interior.Color = vbYellow
Else
rCell.Interior.Color = vbGreen
End If
Next rCell
End With
'------------------------------C-------------------------------
Worksheets("C").Select
With Sheet5
For Each rCell In .Range("N2", .Cells(.Rows.Count, 14).End(xlUp)).Cells
If rCell.Value <= Date Then
rCell.Interior.Color = vbRed
ElseIf rCell.Value <= Date + 7 Then
rCell.Interior.Color = RGB(255, 102, 0)
ElseIf rCell.Value <= Date + 30 Then
rCell.Interior.Color = vbYellow
Else
rCell.Interior.Color = vbGreen
End If
Next rCell
End With
'------------------------------------Sort---------------------------------------
ActiveWorkbook.Worksheets("MSS Open Purchase Orders").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("MSS Open Purchase Orders").Sort.SortFields.Add Key _
:=Range("N4"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("MSS Open Purchase Orders").Sort
.SetRange Range("N4:N58")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Any help is appreciated just started using vba in excel