Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thx Smallweed. Your code executed perfectly.
v |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
run time error 1004 general odbc error excel 2003 vba | Excel Programming | |||
Run Time Error 1004: Application or Object Defined Error | Excel Programming | |||
Run Time 1004 Error: Application or Object Difine Error | Excel Programming | |||
run-time error '1004': Application-defined or object-deifined error | Excel Programming | |||
Run time error '1004': Generaol ODBC error | Excel Programming |