ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   help with Run-time error '1004' (https://www.excelbanter.com/excel-programming/403774-help-run-time-error-1004-a.html)

puttocks

help with Run-time error '1004'
 
I am fairly new at VBA programming and am trying to conditional format
rows in a sheet based on the values in two columns. I keep getting
this error:

"Run-time error '1004':
Application-defined or object-defined error


Can anyone please explain why?

Here is the code.
-------------------------

Private Sub RowColor()

Dim Row As Integer
Dim Status As String
Dim Workdays As Integer
Dim n As Integer

'For each row, check the status and the workdays remaining to due
date. Color the row accordingly.

Status = ActiveSheet.Cells(Row, 10)
Workdays = ActiveSheet.Cells(Row, 14)
n = ActiveSheet.UsedRange.Rows.Count

For Row = 2 To n

Select Case Status

Case NullString
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = False
Case "Pending"
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = False
Case "Resolved"
Target.EntireRow.Interior.ColorIndex = 4 'green
Target.EntireRow.Font.Bold = False
Case "Hold"
Target.EntireRow.Interior.ColorIndex = 5 'Blue
Target.EntireRow.Font.Bold = False
Case "Active"
If Workdays <= 1 Then
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = True
ElseIf Workdays 1 Then
Target.EntireRow.Interior.ColorIndex = 6 'Orange
Target.EntireRow.Font.Bold = True
ElseIf Workdays = 10 Then
Target.EntireRow.Interior.ColorIndex = 7 'Red
Target.EntireRow.Font.Bold = True
End If
Case Else
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = False

End Select

Next

End Sub


Bob Phillips

help with Run-time error '1004'
 
What is Target? What is NullString?

--
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)

"puttocks" wrote in message
...
I am fairly new at VBA programming and am trying to conditional format
rows in a sheet based on the values in two columns. I keep getting
this error:

"Run-time error '1004':
Application-defined or object-defined error


Can anyone please explain why?

Here is the code.
-------------------------

Private Sub RowColor()

Dim Row As Integer
Dim Status As String
Dim Workdays As Integer
Dim n As Integer

'For each row, check the status and the workdays remaining to due
date. Color the row accordingly.

Status = ActiveSheet.Cells(Row, 10)
Workdays = ActiveSheet.Cells(Row, 14)
n = ActiveSheet.UsedRange.Rows.Count

For Row = 2 To n

Select Case Status

Case NullString
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = False
Case "Pending"
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = False
Case "Resolved"
Target.EntireRow.Interior.ColorIndex = 4 'green
Target.EntireRow.Font.Bold = False
Case "Hold"
Target.EntireRow.Interior.ColorIndex = 5 'Blue
Target.EntireRow.Font.Bold = False
Case "Active"
If Workdays <= 1 Then
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = True
ElseIf Workdays 1 Then
Target.EntireRow.Interior.ColorIndex = 6 'Orange
Target.EntireRow.Font.Bold = True
ElseIf Workdays = 10 Then
Target.EntireRow.Interior.ColorIndex = 7 'Red
Target.EntireRow.Font.Bold = True
End If
Case Else
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = False

End Select

Next

End Sub




[email protected]

help with Run-time error '1004'
 
On Jan 7, 4:18*pm, puttocks wrote:
I am fairly new at VBA programming and am trying to conditional format
rows in a sheet based on the values in two columns. *I keep getting
this error:

"Run-time error '1004':
Application-defined or object-defined error

Can anyone please explain why?

Here is the code.
-------------------------

Private Sub RowColor()

* * Dim Row As Integer
* * Dim Status As String
* * Dim Workdays As Integer
* * Dim n As Integer

* * 'For each row, check the status and the workdays remaining to due
date. *Color the row accordingly.

* * Status = ActiveSheet.Cells(Row, 10)
* * Workdays = ActiveSheet.Cells(Row, 14)
* * n = ActiveSheet.UsedRange.Rows.Count

* * For Row = 2 To n

* * * * Select Case Status

* * * * Case NullString
* * * * * * Target.EntireRow.Interior.ColorIndex = xlNone
* * * * * * Target.EntireRow.Font.Bold = False
* * * * Case "Pending"
* * * * * * Target.EntireRow.Interior.ColorIndex = xlNone
* * * * * * Target.EntireRow.Font.Bold = False
* * * * Case "Resolved"
* * * * * * Target.EntireRow.Interior.ColorIndex = 4 * * 'green
* * * * * * Target.EntireRow.Font.Bold = False
* * * * Case "Hold"
* * * * * * Target.EntireRow.Interior.ColorIndex = 5 * *'Blue
* * * * * * Target.EntireRow.Font.Bold = False
* * * * Case "Active"
* * * * * * If Workdays <= 1 Then
* * * * * * * * Target.EntireRow.Interior.ColorIndex = xlNone
* * * * * * * * Target.EntireRow.Font.Bold = True
* * * * * * ElseIf Workdays 1 Then
* * * * * * * * Target.EntireRow.Interior.ColorIndex = 6 'Orange
* * * * * * * * Target.EntireRow.Font.Bold = True
* * * * * * ElseIf Workdays = 10 Then
* * * * * * * * Target.EntireRow.Interior.ColorIndex = 7 'Red
* * * * * * * * Target.EntireRow.Font.Bold = True
* * * * * * End If
* * * * Case Else
* * * * * * Target.EntireRow.Interior.ColorIndex = xlNone
* * * * * * Target.EntireRow.Font.Bold = False

* * * * End Select

* * *Next

End Sub


Hi
You havn't given the variable Row a value.
Status = ActiveSheet.Cells(Row, 10)
Workdays = ActiveSheet.Cells(Row, 14)
The code then assumes it has value 0 as it is declared an integer. But
Cells(0, 10) does not exist, as rows start at 1.
So do
Row = 1
at the top of the code.
Better still, change Row to myRow as Row is a VBA Range property.

regards
Paul

Smallweed

help with Run-time error '1004'
 
Try this:

Private Sub RowColor()

Dim Row As Integer
Dim Status As String
Dim Workdays As Integer
Dim n As Integer

'For each row, check the status and the workdays remaining to due
'date. Color the row accordingly.

n = ActiveSheet.UsedRange.Rows.Count

For Row = 2 To n
Status = ActiveSheet.Cells(Row, 10)
Workdays = ActiveSheet.Cells(Row, 14)

Select Case Status

Case ""
Cells(Row, 1).EntireRow.Interior.ColorIndex = xlNone
Cells(Row, 1).EntireRow.Font.Bold = False
Case "Pending"
Cells(Row, 1).EntireRow.Interior.ColorIndex = xlNone
Cells(Row, 1).EntireRow.Font.Bold = False
Case "Resolved"
Cells(Row, 1).EntireRow.Interior.ColorIndex = 4 'green
Cells(Row, 1).EntireRow.Font.Bold = False
Case "Hold"
Cells(Row, 1).EntireRow.Interior.ColorIndex = 5 'Blue
Cells(Row, 1).EntireRow.Font.Bold = False
Case "Active"
If Workdays <= 1 Then
Cells(Row, 1).EntireRow.Interior.ColorIndex = xlNone
Cells(Row, 1).EntireRow.Font.Bold = True
ElseIf Workdays 1 Then
Cells(Row, 1).EntireRow.Interior.ColorIndex = 6 'Orange
Cells(Row, 1).EntireRow.Font.Bold = True
ElseIf Workdays = 10 Then
Cells(Row, 1).EntireRow.Interior.ColorIndex = 7 'Red
Cells(Row, 1).EntireRow.Font.Bold = True
End If
Case Else
Cells(Row, 1).EntireRow.Interior.ColorIndex = xlNone
Cells(Row, 1).EntireRow.Font.Bold = False

End Select

Next

End Sub

"puttocks" wrote:

I am fairly new at VBA programming and am trying to conditional format
rows in a sheet based on the values in two columns. I keep getting
this error:

"Run-time error '1004':
Application-defined or object-defined error


Can anyone please explain why?

Here is the code.
-------------------------

Private Sub RowColor()

Dim Row As Integer
Dim Status As String
Dim Workdays As Integer
Dim n As Integer

'For each row, check the status and the workdays remaining to due
date. Color the row accordingly.

Status = ActiveSheet.Cells(Row, 10)
Workdays = ActiveSheet.Cells(Row, 14)
n = ActiveSheet.UsedRange.Rows.Count

For Row = 2 To n

Select Case Status

Case NullString
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = False
Case "Pending"
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = False
Case "Resolved"
Target.EntireRow.Interior.ColorIndex = 4 'green
Target.EntireRow.Font.Bold = False
Case "Hold"
Target.EntireRow.Interior.ColorIndex = 5 'Blue
Target.EntireRow.Font.Bold = False
Case "Active"
If Workdays <= 1 Then
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = True
ElseIf Workdays 1 Then
Target.EntireRow.Interior.ColorIndex = 6 'Orange
Target.EntireRow.Font.Bold = True
ElseIf Workdays = 10 Then
Target.EntireRow.Interior.ColorIndex = 7 'Red
Target.EntireRow.Font.Bold = True
End If
Case Else
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = False

End Select

Next

End Sub



puttocks

help with Run-time error '1004'
 
Thx for your replies. I declared "target" and removed the
"nullstring".

I also set n to 0. Now I don't get any errors, but strangely, no
formatting of any kind occurs. Clearly I am missing something.

Thanks in advance for your time.

v
----------------------------------------------


Private Sub RowColor(ByVal Target As Excel.Range)

Dim myRow As Integer
Dim Status As String
Dim Workdays As Integer
Dim n As Integer

'For each row, check the status and the workdays remaining to due
date. Color the row accordingly.

Status = ActiveSheet.Cells(Row, 10)
Workdays = ActiveSheet.Cells(Row, 14)
n = ActiveSheet.UsedRange.Rows.Count
myRow = 0

For myRow = 2 To n

Select Case Status

Case "Pending"
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = False
Case "Resolved"
Target.EntireRow.Interior.ColorIndex = 4 'green
Target.EntireRow.Font.Bold = False
Case "Hold"
Target.EntireRow.Interior.ColorIndex = 5 'Blue
Target.EntireRow.Font.Bold = False
Case "Active"
If Workdays <= 1 Then
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = True
ElseIf Workdays 1 Then
Target.EntireRow.Interior.ColorIndex = 6 'Orange
Target.EntireRow.Font.Bold = True
ElseIf Workdays = 10 Then
Target.EntireRow.Interior.ColorIndex = 7 'Red
Target.EntireRow.Font.Bold = True
End If
Case Else
Target.EntireRow.Interior.ColorIndex = xlNone
Target.EntireRow.Font.Bold = False

End Select

Next

End Sub

puttocks

help with Run-time error '1004'
 
Thx Smallweed. Your code executed perfectly.
v


All times are GMT +1. The time now is 09:21 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com