ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   VBA and "If"?! (https://www.excelbanter.com/excel-programming/395258-vba-if.html)

Jo[_2_]

VBA and "If"?!
 
I have this code runs fine but, for Zone4=7, its row gets hidden
although it shouldn't according to the code below. What could I be
missing?

If Zone5 = 0 Then
Range("Zone5").Select
Selection.EntireRow.Hidden = True
End If

If Zone4 = 0 Then
Range("Zone4").Select
Selection.EntireRow.Hidden = True
End If

If Zone3 = 0 Then
Range("Zone3").Select
Selection.EntireRow.Hidden = True
End If

If Zone2 = 0 Then
Range("Zone2").Select
Selection.EntireRow.Hidden = True
End If


Jim Thomlinson

VBA and "If"?!
 
I can see that you have a named range called Zone4 but it also appears that
you have a variable called Zone4. Where is your variable Zone4 declared and
how is the value initialized? I guess what I am saying is post the rest of
your code...
--
HTH...

Jim Thomlinson


"Jo" wrote:

I have this code runs fine but, for Zone4=7, its row gets hidden
although it shouldn't according to the code below. What could I be
missing?

If Zone5 = 0 Then
Range("Zone5").Select
Selection.EntireRow.Hidden = True
End If

If Zone4 = 0 Then
Range("Zone4").Select
Selection.EntireRow.Hidden = True
End If

If Zone3 = 0 Then
Range("Zone3").Select
Selection.EntireRow.Hidden = True
End If

If Zone2 = 0 Then
Range("Zone2").Select
Selection.EntireRow.Hidden = True
End If



George Nicholson

VBA and "If"?!
 
Are all 4 Named Ranges on different rows? No overlaps? (Have you
doublechecked?)

My guess would be that either Zone5, 3 or 2 is on the same row as (or has a
range that overlaps) Zone4 and that one of them equals zero, causing Zone 4
to be hidden as well.

HTH,


"Jo" wrote in message
ups.com...
I have this code runs fine but, for Zone4=7, its row gets hidden
although it shouldn't according to the code below. What could I be
missing?

If Zone5 = 0 Then
Range("Zone5").Select
Selection.EntireRow.Hidden = True
End If

If Zone4 = 0 Then
Range("Zone4").Select
Selection.EntireRow.Hidden = True
End If

If Zone3 = 0 Then
Range("Zone3").Select
Selection.EntireRow.Hidden = True
End If

If Zone2 = 0 Then
Range("Zone2").Select
Selection.EntireRow.Hidden = True
End If




Jo[_2_]

VBA and "If"?!
 
On Aug 10, 12:48 pm, Jim Thomlinson <James_Thomlin...@owfg-Re-Move-
This-.com wrote:
I can see that you have a named range called Zone4 but it also appears that
you have a variable called Zone4. Where is your variable Zone4 declared and
how is the value initialized? I guess what I am saying is post the rest of
your code...
--
HTH...

Jim Thomlinson



"Jo" wrote:
I have this code runs fine but, for Zone4=7, its row gets hidden
although it shouldn't according to the code below. What could I be
missing?


If Zone5 = 0 Then
Range("Zone5").Select
Selection.EntireRow.Hidden = True
End If


If Zone4 = 0 Then
Range("Zone4").Select
Selection.EntireRow.Hidden = True
End If


If Zone3 = 0 Then
Range("Zone3").Select
Selection.EntireRow.Hidden = True
End If


If Zone2 = 0 Then
Range("Zone2").Select
Selection.EntireRow.Hidden = True
End If- Hide quoted text -


- Show quoted text -


Zone5, ...Zone2 are cell names only and I have them nowhere defined in
the code. Simply I am telling the code this: where Zone5=0, hide the
whole row, same to Zone4,..Zone2!

How I can fix this? Thanks


Jo[_2_]

VBA and "If"?!
 
On Aug 10, 12:51 pm, "George Nicholson"
wrote:
Are all 4 Named Ranges on different rows? No overlaps? (Have you
doublechecked?)

My guess would be that either Zone5, 3 or 2 is on the same row as (or has a
range that overlaps) Zone4 and that one of them equals zero, causing Zone 4
to be hidden as well.

HTH,

"Jo" wrote in message

ups.com...



I have this code runs fine but, for Zone4=7, its row gets hidden
although it shouldn't according to the code below. What could I be
missing?


If Zone5 = 0 Then
Range("Zone5").Select
Selection.EntireRow.Hidden = True
End If


If Zone4 = 0 Then
Range("Zone4").Select
Selection.EntireRow.Hidden = True
End If


If Zone3 = 0 Then
Range("Zone3").Select
Selection.EntireRow.Hidden = True
End If


If Zone2 = 0 Then
Range("Zone2").Select
Selection.EntireRow.Hidden = True
End If- Hide quoted text -


- Show quoted text -


George,

No overlapping for sure!


Jo[_2_]

VBA and "If"?!
 
On Aug 10, 12:48 pm, Jim Thomlinson <James_Thomlin...@owfg-Re-Move-
This-.com wrote:
I can see that you have a named range called Zone4 but it also appears that
you have a variable called Zone4. Where is your variable Zone4 declared and
how is the value initialized? I guess what I am saying is post the rest of
your code...
--
HTH...

Jim Thomlinson



"Jo" wrote:
I have this code runs fine but, for Zone4=7, its row gets hidden
although it shouldn't according to the code below. What could I be
missing?


If Zone5 = 0 Then
Range("Zone5").Select
Selection.EntireRow.Hidden = True
End If


If Zone4 = 0 Then
Range("Zone4").Select
Selection.EntireRow.Hidden = True
End If


If Zone3 = 0 Then
Range("Zone3").Select
Selection.EntireRow.Hidden = True
End If


If Zone2 = 0 Then
Range("Zone2").Select
Selection.EntireRow.Hidden = True
End If- Hide quoted text -


- Show quoted text -


Whole code is below:

Sub ZeroPointChangeA()
'
' ZeroPointChange Macro
' Macro recorded 8/2/2007 by Michael Sultan
'

'
ActiveSheet.ChartObjects("Chart 46").Activate
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = Names("BaseCPM1").RefersToRange.Value
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
ActiveChart.PlotArea.Select
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.MinimumScale = Names("BaseCR1").RefersToRange.Value * 100
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With

If Zone5 <= 0 Then
Range("Zone5").Select
Selection.EntireRow.Hidden = True
End If

If Zone4 <= 0 Then
Range("Zone4").Select
Selection.EntireRow.Hidden = True
End If

If Zone3 <= 0 Then
Range("Zone3").Select
Selection.EntireRow.Hidden = True
End If

If Zone2 <= 0 Then
Range("Zone2").Select
Selection.EntireRow.Hidden = True
End If

End Sub


Jim Thomlinson

VBA and "If"?!
 
So Zone5, Zone4 and ... are only named ranges. In that case you can not just
reference them as if they were variables. Give this a try...

If Range("Zone5").Value = 0 Then
Range("Zone5").EntireRow.Hidden = True
End If

If Range("Zone4").Value = 0 Then
Range("Zone4").EntireRow.Hidden = True
End If

If Range("Zone3").Value = 0 Then
Range("Zone3").EntireRow.Hidden = True
End If

If Range("Zone2").Value = 0 Then
Range("Zone2").EntireRow.Hidden = True
End If

--
HTH...

Jim Thomlinson


"Jo" wrote:

On Aug 10, 12:48 pm, Jim Thomlinson <James_Thomlin...@owfg-Re-Move-
This-.com wrote:
I can see that you have a named range called Zone4 but it also appears that
you have a variable called Zone4. Where is your variable Zone4 declared and
how is the value initialized? I guess what I am saying is post the rest of
your code...
--
HTH...

Jim Thomlinson



"Jo" wrote:
I have this code runs fine but, for Zone4=7, its row gets hidden
although it shouldn't according to the code below. What could I be
missing?


If Zone5 = 0 Then
Range("Zone5").Select
Selection.EntireRow.Hidden = True
End If


If Zone4 = 0 Then
Range("Zone4").Select
Selection.EntireRow.Hidden = True
End If


If Zone3 = 0 Then
Range("Zone3").Select
Selection.EntireRow.Hidden = True
End If


If Zone2 = 0 Then
Range("Zone2").Select
Selection.EntireRow.Hidden = True
End If- Hide quoted text -


- Show quoted text -


Whole code is below:

Sub ZeroPointChangeA()
'
' ZeroPointChange Macro
' Macro recorded 8/2/2007 by Michael Sultan
'

'
ActiveSheet.ChartObjects("Chart 46").Activate
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = Names("BaseCPM1").RefersToRange.Value
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
ActiveChart.PlotArea.Select
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.MinimumScale = Names("BaseCR1").RefersToRange.Value * 100
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With

If Zone5 <= 0 Then
Range("Zone5").Select
Selection.EntireRow.Hidden = True
End If

If Zone4 <= 0 Then
Range("Zone4").Select
Selection.EntireRow.Hidden = True
End If

If Zone3 <= 0 Then
Range("Zone3").Select
Selection.EntireRow.Hidden = True
End If

If Zone2 <= 0 Then
Range("Zone2").Select
Selection.EntireRow.Hidden = True
End If

End Sub



JMB

VBA and "If"?!
 
Just as an observation, the OP could probably shorten these if blocks to:

For i = 2 to 5
With Range("Zone" & i)
.EntireRow.Hidden = (.Value = 0)
End With
Next i

but the OP has used both <= 0 and = 0 as the condition for hiding the row(s)
and I'm assuming the named ranges are single cells. Otherwise would probably
have to loop through the range and hide/unhide every row.


"Jim Thomlinson" wrote:

So Zone5, Zone4 and ... are only named ranges. In that case you can not just
reference them as if they were variables. Give this a try...

If Range("Zone5").Value = 0 Then
Range("Zone5").EntireRow.Hidden = True
End If

If Range("Zone4").Value = 0 Then
Range("Zone4").EntireRow.Hidden = True
End If

If Range("Zone3").Value = 0 Then
Range("Zone3").EntireRow.Hidden = True
End If

If Range("Zone2").Value = 0 Then
Range("Zone2").EntireRow.Hidden = True
End If

--
HTH...

Jim Thomlinson


"Jo" wrote:

On Aug 10, 12:48 pm, Jim Thomlinson <James_Thomlin...@owfg-Re-Move-
This-.com wrote:
I can see that you have a named range called Zone4 but it also appears that
you have a variable called Zone4. Where is your variable Zone4 declared and
how is the value initialized? I guess what I am saying is post the rest of
your code...
--
HTH...

Jim Thomlinson



"Jo" wrote:
I have this code runs fine but, for Zone4=7, its row gets hidden
although it shouldn't according to the code below. What could I be
missing?

If Zone5 = 0 Then
Range("Zone5").Select
Selection.EntireRow.Hidden = True
End If

If Zone4 = 0 Then
Range("Zone4").Select
Selection.EntireRow.Hidden = True
End If

If Zone3 = 0 Then
Range("Zone3").Select
Selection.EntireRow.Hidden = True
End If

If Zone2 = 0 Then
Range("Zone2").Select
Selection.EntireRow.Hidden = True
End If- Hide quoted text -

- Show quoted text -


Whole code is below:

Sub ZeroPointChangeA()
'
' ZeroPointChange Macro
' Macro recorded 8/2/2007 by Michael Sultan
'

'
ActiveSheet.ChartObjects("Chart 46").Activate
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = Names("BaseCPM1").RefersToRange.Value
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
ActiveChart.PlotArea.Select
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.MinimumScale = Names("BaseCR1").RefersToRange.Value * 100
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With

If Zone5 <= 0 Then
Range("Zone5").Select
Selection.EntireRow.Hidden = True
End If

If Zone4 <= 0 Then
Range("Zone4").Select
Selection.EntireRow.Hidden = True
End If

If Zone3 <= 0 Then
Range("Zone3").Select
Selection.EntireRow.Hidden = True
End If

If Zone2 <= 0 Then
Range("Zone2").Select
Selection.EntireRow.Hidden = True
End If

End Sub




All times are GMT +1. The time now is 05:19 PM.

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