If else if else statement help

G

Guest

Hi, Please help I have the following if else if else statement which
describes exactly what I want to do, but the syntax or order is not correct.

If Worksheets("Calc Current PL").Range("K5").Value = 0 Then
Call HideZerosFromCurrentChart1
Else
Call ReverseHideZerosFromCurrent1

ElseIf Worksheets("Calc Current PL").Range("K41").Value = 0 Then
Call HideZerosFromCurrentChart6
Else
Call ReverseHideZerosFromCurrent6

ElseIf Worksheets("Calc Current PL").Range("K77").Value = 0 Then
Call HideZerosFromCurrentChart7
Else
Call ReverseHideZerosFromCurrent7

ElseIf Worksheets("Calc Current PL").Range("K113").Value = 0 Then
Call HideZerosFromCurrentChart8
Else
Call ReverseHideZerosFromCurrent8
End If

Thank you in advance for help
 
A

Ardus Petus

The following is syntactically correct.
Does it suit yout needs?

--
AP

'-----------------------------------
Sub tester()
If Worksheets("Calc Current PL").Range("K5").Value = 0 Then
Call HideZerosFromCurrentChart1
Else
Call ReverseHideZerosFromCurrent1
End If

If Worksheets("Calc Current PL").Range("K41").Value = 0 Then
Call HideZerosFromCurrentChart6
Else
Call ReverseHideZerosFromCurrent6
End If

If Worksheets("Calc Current PL").Range("K77").Value = 0 Then
Call HideZerosFromCurrentChart7
Else
Call ReverseHideZerosFromCurrent7
End If

If Worksheets("Calc Current PL").Range("K113").Value = 0 Then
Call HideZerosFromCurrentChart8
Else
Call ReverseHideZerosFromCurrent8
End If


End Sub
 
N

NickHK

Not sure what you are trying to do.
"Worksheets("Calc Current PL").Range("K5").Value" will = 0 or it will not.
So I do not see the relevance of Range("K41").Value .
Do you mean this ?
With Worksheets("Calc Current PL")
If .Range("K5").Value = 0 Then
Call HideZerosFromCurrentChart1
Else
Call ReverseHideZerosFromCurrent1
End If

If .Range("K41").Value = 0 Then
Call HideZerosFromCurrentChart6
Else
Call ReverseHideZerosFromCurrent6
End If
'...etc

Also, I don't know what the subs like "HideZerosFromCurrentChart6", but
could you simplify it by passing some arguments to a single routine. e.g.
Function FormatZerosFromChart(argShow As Boolean, argChart As Long)
'whatever code here
End Function

Then you could process each cell value with
With Worksheets("Calc Current PL")
Call FormatZerosFromChart((.Range("K5").Value = 0),1)
Call FormatZerosFromChart((.Range("K41").Value = 0),6)
'.....etc

NickHK
 
G

Guest

Thank you.

Ardus Petus said:
The following is syntactically correct.
Does it suit yout needs?

--
AP

'-----------------------------------
Sub tester()
If Worksheets("Calc Current PL").Range("K5").Value = 0 Then
Call HideZerosFromCurrentChart1
Else
Call ReverseHideZerosFromCurrent1
End If

If Worksheets("Calc Current PL").Range("K41").Value = 0 Then
Call HideZerosFromCurrentChart6
Else
Call ReverseHideZerosFromCurrent6
End If

If Worksheets("Calc Current PL").Range("K77").Value = 0 Then
Call HideZerosFromCurrentChart7
Else
Call ReverseHideZerosFromCurrent7
End If

If Worksheets("Calc Current PL").Range("K113").Value = 0 Then
Call HideZerosFromCurrentChart8
Else
Call ReverseHideZerosFromCurrent8
End If


End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top