ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Visual Basic Help (https://www.excelbanter.com/excel-programming/348811-visual-basic-help.html)

John

Visual Basic Help
 
I am writing some code in a macro, that when a checkbox is checked, the macro
is run and will look at a cell to see if the word "TRUE" is in it. If it is
true, I want to turn the cell red. If it is not true, I want the cell to be
white. I am getting an else without if error. Below is the code, could
someone help me?

Sub us()
'
' us Macro
' Macro recorded 12/22/2005 by
'

'
If Range("M42") = "True" Then
ActiveWindow.SmallScroll Down:=4
Range("D42,D44,D46").Select
Range("D46").Activate
ActiveWindow.SmallScroll Down:=3
Range("D42,D44,D46,D48,D50").Select
Range("D50").Activate
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
Else
ActiveWindow.SmallScroll Down:=4
Range("D42,D44,D46").Select
Range("D46").Activate
ActiveWindow.SmallScroll Down:=3
Range("D42,D44,D46,D48,D50").Select
Range("D50").Activate
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End If
End Sub


PaulD

Visual Basic Help
 
You need to close your With sections with End With. Note inserted lines
below
Paul D

"John" wrote in message
...
: I am writing some code in a macro, that when a checkbox is checked, the
macro
: is run and will look at a cell to see if the word "TRUE" is in it. If it
is
: true, I want to turn the cell red. If it is not true, I want the cell to
be
: white. I am getting an else without if error. Below is the code, could
: someone help me?
:
: Sub us()
: '
: ' us Macro
: ' Macro recorded 12/22/2005 by
: '
:
: '
: If Range("M42") = "True" Then
: ActiveWindow.SmallScroll Down:=4
: Range("D42,D44,D46").Select
: Range("D46").Activate
: ActiveWindow.SmallScroll Down:=3
: Range("D42,D44,D46,D48,D50").Select
: Range("D50").Activate
: With Selection.Interior
: .ColorIndex = 3
: .Pattern = xlSolid
: .PatternColorIndex = xlAutomatic
End With '*****<--------
: Else
: ActiveWindow.SmallScroll Down:=4
: Range("D42,D44,D46").Select
: Range("D46").Activate
: ActiveWindow.SmallScroll Down:=3
: Range("D42,D44,D46,D48,D50").Select
: Range("D50").Activate
: With Selection.Interior
: .ColorIndex = 3
: .Pattern = xlSolid
: .PatternColorIndex = xlAutomatic
End With '*****<-----------
: End If
: End Sub
:



Linc

Visual Basic Help
 
Don't you need an End With after your With blocks?


Linc

Visual Basic Help
 
Don't you need 'End With' after your With blocks?

Put 'End With' before 'Else' and before 'End If.'


Leith Ross[_415_]

Visual Basic Help
 

Hello John,

You are missing the *End With* statements. I highlighted them in red.


Code
-------------------

If Range("M42") = "True" Then
ActiveWindow.SmallScroll Down:=4
Range("D42,D44,D46").Select
Range("D46").Activate
ActiveWindow.SmallScroll Down:=3
Range("D42,D44,D46,D48,D50").Select
Range("D50").Activate
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Else
ActiveWindow.SmallScroll Down:=4
Range("D42,D44,D46").Select
Range("D46").Activate
ActiveWindow.SmallScroll Down:=3
Range("D42,D44,D46,D48,D50").Select
Range("D50").Activate
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End If
End Sub

-------------------


Sincerely,
Leith Ros

--
Leith Ros
-----------------------------------------------------------------------
Leith Ross's Profile: http://www.excelforum.com/member.php...fo&userid=1846
View this thread: http://www.excelforum.com/showthread.php?threadid=49569


L. Howard Kittle

Visual Basic Help
 
I think this does the same as your recorded macro, a bit shorter. You
usually don't have to select cells to do stuff to them.

Sub us()
If Range("M42") = "True" Then
Range("D42,D44,D46,D48,D50").Interior.ColorIndex = 3
Else
Range("D42,D44,D46,D48,D50").Interior.ColorIndex = xlNone
End If
End Sub

HTH
Regards,
Howard

"John" wrote in message
...
I am writing some code in a macro, that when a checkbox is checked, the
macro
is run and will look at a cell to see if the word "TRUE" is in it. If it
is
true, I want to turn the cell red. If it is not true, I want the cell to
be
white. I am getting an else without if error. Below is the code, could
someone help me?

Sub us()
'
' us Macro
' Macro recorded 12/22/2005 by
'

'
If Range("M42") = "True" Then
ActiveWindow.SmallScroll Down:=4
Range("D42,D44,D46").Select
Range("D46").Activate
ActiveWindow.SmallScroll Down:=3
Range("D42,D44,D46,D48,D50").Select
Range("D50").Activate
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
Else
ActiveWindow.SmallScroll Down:=4
Range("D42,D44,D46").Select
Range("D46").Activate
ActiveWindow.SmallScroll Down:=3
Range("D42,D44,D46,D48,D50").Select
Range("D50").Activate
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End If
End Sub




systematic[_14_]

Visual Basic Help
 

Just a thought - depending on whether ticking the checkbox triggers a
change to the cell (ie whether it is true or false) - you could also
just use conditional formatting instead of code.

----

Rob


--
systematic
------------------------------------------------------------------------
systematic's Profile: http://www.excelforum.com/member.php...o&userid=25294
View this thread: http://www.excelforum.com/showthread...hreadid=495691



All times are GMT +1. The time now is 07:29 AM.

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