Problem with If,Then, Else

  • Thread starter Thread starter John
  • Start date Start date
J

John

Hi Everyone
Below is a sample of my codes for a Staircase Calculator.
My problem is at the If command at the bottom, I tried different things
but no success, I need your help.
Regards
John

Sub Make_Stairs4()

Dim nx As Variant
nx = 4
Application.ScreenUpdating = False
ActiveWindow.Zoom = 100

Height_size = Range("G1").Value
Width_size = Range("G2").Value
Left_size = Range("K1").Value
Top_size = Range("K2").Value

ActiveSheet.Shapes.AddShape(msoShapeRightTriangle, _
Left_size, Top_size, Width_size, Height_size).Select

'Selection.Characters.Text = "4"

Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Transparency = 0.65
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.ForeColor.RGB = RGB(10, 10, 10)
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)

ActiveSheet.Range("D2").Select

If nx = Range("A3").Value Then Selection.Characters.Text = "Foor" , Exit Sub

Else: Selection.Characters.Text = "4"

End If

Call Make_Stairs5

End Sub
 
If nx = Range("A3").Value Then Selection.Characters.Text = "Foor" , Exit
Sub

Else: Selection.Characters.Text = "4"

End If

Forget trying to combine things on the same line and use normal blocking...

If nx = Range("A3").Value Then
Selection.Characters.Text = "Foor"
Exit Sub
Else
Selection.Characters.Text = "4"
End If

As for your error, you can't mix putting commands after the Then keyword
with Else conditionals. If you have this...

If <logical expression> Then <do something>

then you cannot follow it with an ElseIf nor and Else; however, if you put
the <do something> code on a separate line from the Then keyword, you can.
 
Hi Rick
Thank you for your reply.
When I execute the codes, it stops at this line
Selection.Characters.Text = "Foor"
Runtime error 1004
Unable to set the text property of the character class.
Best regards
John
 
Actually, I didn't look at what the code is supposed to be doing; rather, I
just spotted the structural error and posted the correction for it. As to
your current question, what is this line...

Selection.Characters.Text = "Foor"

supposed to be doing? Are you just trying to assign "Foor" to the selected
cell or cells? If so, just do this...

Selection.Value = "Foor"

If you are attempting to do something else, you will have to give a more
detailed description. And, in addition to such a description, I would want
to know if the selected cell or cells contain formulas or text constants.
 
Hi Rick
Explaining myself in English is not my forte but will sure try.
With this line, I'm inserting text in the Triangle
Selection.Characters.Text = "Floor"
If I type this line at the top like this:
ActiveSheet.Shapes.AddShape(msoShapeRightTriangle, _
Left_size, Top_size, Width_size, Height_size).Select
Selection.Characters.Text = "Floor"
it works, but below in the IF statement it doesn't.
What it's doing is numbering the stairs and if you reach the last stair, instead
of a number,
it should print "Floor".
Hope I have explained it better for you, if not , please tell me, will be glad
to try again.
Thank you for your patience.
Regards
John
 
Try this. Hope this helps! If so, let me know, click "YES" below.
Sub Make_Stairs4()

Dim nx As Variant

nx = 4
Application.ScreenUpdating = False
ActiveWindow.Zoom = 100

Height_size = Range("G1").Value
Width_size = Range("G2").Value
Left_size = Range("K1").Value
Top_size = Range("K2").Value

ActiveSheet.Shapes.AddShape(msoShapeRightTriangle, _
Left_size, Top_size, _
Width_size, Height_size).Select

'Selection.Characters.Text = "4"

With Selection.ShapeRange
.Fill.ForeColor.RGB = RGB(255, 255, 255)
.Fill.Transparency = 0.65
.Line.Weight = 0.75
.Line.ForeColor.RGB = RGB(10, 10, 10)
.Line.BackColor.RGB = RGB(255, 255, 255)
End With

ActiveSheet.Range("D2").Select

If nx = Range("A3").Value Then
Selection.Characters.Text = "Foor"
Exit Sub
Else
Selection.Characters.Text = "4"
End If

Call Make_Stairs5

End Sub
 
Thanks for your reply.
It's the same thing as Rick, getting the same error.
Any ideas ?
Regards
John
 
Thanks for your help Rick
I got it working,
"ActiveSheet.Range("D2").Select" was in conflict I guess!!
I change its location and it's working.
Regards
John
 
Thanks for your help Ryan
I got it working,
"ActiveSheet.Range("D2").Select" was in conflict I guess!!
I change its location and it's working.
Regards
John
 
Back
Top