ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Separating sub procedures (https://www.excelbanter.com/excel-discussion-misc-queries/218148-separating-sub-procedures.html)

JAW

Separating sub procedures
 
My VBA code hides certain rows in my spreadsheet - however I have created two
different ones - relying on two different Targets. It will run, but only
pays attention to the last Target I have commanded. What have I done
wrong? Please help as I am an absolute beginner at VBA. Please see code
attached:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("G25"), Target) Is Nothing Then
Range("A28:A32").EntireRow.Hidden = True
If Target.Value = "Yes" Then
Range("A28:A32").EntireRow.Hidden = True
Range("A33:A999").EntireRow.Hidden = False
Else
If Target.Value = "" Then
Range("A28:A32").EntireRow.Hidden = True
Range("A33:A999").EntireRow.Hidden = False
Else
Range("A28:A32").EntireRow.Hidden = False
Range("A33:A999").EntireRow.Hidden = True
End If
End If
End If

If Not Application.Intersect(Range("E22"), Target) Is Nothing Then
Range("A53:A59").EntireRow.Hidden = True
If Target.Value = "No" Then
Range("A53:A59").EntireRow.Hidden = True
Else
Range("A53:A59").EntireRow.Hidden = False
End If
End If
End Sub


Daniel.C[_3_]

Separating sub procedures
 
It works for me. What part of the code is not executing ?
Daniel

My VBA code hides certain rows in my spreadsheet - however I have created two
different ones - relying on two different Targets. It will run, but only
pays attention to the last Target I have commanded. What have I done
wrong? Please help as I am an absolute beginner at VBA. Please see code
attached:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("G25"), Target) Is Nothing Then
Range("A28:A32").EntireRow.Hidden = True
If Target.Value = "Yes" Then
Range("A28:A32").EntireRow.Hidden = True
Range("A33:A999").EntireRow.Hidden = False
Else
If Target.Value = "" Then
Range("A28:A32").EntireRow.Hidden = True
Range("A33:A999").EntireRow.Hidden = False
Else
Range("A28:A32").EntireRow.Hidden = False
Range("A33:A999").EntireRow.Hidden = True
End If
End If
End If

If Not Application.Intersect(Range("E22"), Target) Is Nothing Then
Range("A53:A59").EntireRow.Hidden = True
If Target.Value = "No" Then
Range("A53:A59").EntireRow.Hidden = True
Else
Range("A53:A59").EntireRow.Hidden = False
End If
End If
End Sub




JAW

Separating sub procedures
 
If in the first instance you say "No" in cell E22 so that rows 53 - 59 hide.

After this, say "Yes" to G25 in order to make sure that rows 28-32 hide and
that 33-999 don't hide - you will see that the original command is undone -
i.e. rows 53-59 are now unhidden again.

The code only seems to respond to the last command you have affected.



"Daniel.C" wrote:

It works for me. What part of the code is not executing ?
Daniel

My VBA code hides certain rows in my spreadsheet - however I have created two
different ones - relying on two different Targets. It will run, but only
pays attention to the last Target I have commanded. What have I done
wrong? Please help as I am an absolute beginner at VBA. Please see code
attached:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("G25"), Target) Is Nothing Then
Range("A28:A32").EntireRow.Hidden = True
If Target.Value = "Yes" Then
Range("A28:A32").EntireRow.Hidden = True
Range("A33:A999").EntireRow.Hidden = False
Else
If Target.Value = "" Then
Range("A28:A32").EntireRow.Hidden = True
Range("A33:A999").EntireRow.Hidden = False
Else
Range("A28:A32").EntireRow.Hidden = False
Range("A33:A999").EntireRow.Hidden = True
End If
End If
End If

If Not Application.Intersect(Range("E22"), Target) Is Nothing Then
Range("A53:A59").EntireRow.Hidden = True
If Target.Value = "No" Then
Range("A53:A59").EntireRow.Hidden = True
Else
Range("A53:A59").EntireRow.Hidden = False
End If
End If
End Sub





Daniel.C[_3_]

Separating sub procedures
 
That seems normal since 33-999 are unhidden, 53-59 are unhidden. You'll
have to unhide 33-52 and 60-999.
Daniel

If in the first instance you say "No" in cell E22 so that rows 53 - 59 hide.

After this, say "Yes" to G25 in order to make sure that rows 28-32 hide and
that 33-999 don't hide - you will see that the original command is undone -
i.e. rows 53-59 are now unhidden again.

The code only seems to respond to the last command you have affected.



"Daniel.C" wrote:

It works for me. What part of the code is not executing ?
Daniel

My VBA code hides certain rows in my spreadsheet - however I have created
two different ones - relying on two different Targets. It will run, but
only pays attention to the last Target I have commanded. What have I
done wrong? Please help as I am an absolute beginner at VBA. Please see
code attached:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("G25"), Target) Is Nothing Then
Range("A28:A32").EntireRow.Hidden = True
If Target.Value = "Yes" Then
Range("A28:A32").EntireRow.Hidden = True
Range("A33:A999").EntireRow.Hidden = False
Else
If Target.Value = "" Then
Range("A28:A32").EntireRow.Hidden = True
Range("A33:A999").EntireRow.Hidden = False
Else
Range("A28:A32").EntireRow.Hidden = False
Range("A33:A999").EntireRow.Hidden = True
End If
End If
End If

If Not Application.Intersect(Range("E22"), Target) Is Nothing Then
Range("A53:A59").EntireRow.Hidden = True
If Target.Value = "No" Then
Range("A53:A59").EntireRow.Hidden = True
Else
Range("A53:A59").EntireRow.Hidden = False
End If
End If
End Sub







JAW

Separating sub procedures
 
You're right - thanks

"Daniel.C" wrote:

That seems normal since 33-999 are unhidden, 53-59 are unhidden. You'll
have to unhide 33-52 and 60-999.
Daniel

If in the first instance you say "No" in cell E22 so that rows 53 - 59 hide.

After this, say "Yes" to G25 in order to make sure that rows 28-32 hide and
that 33-999 don't hide - you will see that the original command is undone -
i.e. rows 53-59 are now unhidden again.

The code only seems to respond to the last command you have affected.



"Daniel.C" wrote:

It works for me. What part of the code is not executing ?
Daniel

My VBA code hides certain rows in my spreadsheet - however I have created
two different ones - relying on two different Targets. It will run, but
only pays attention to the last Target I have commanded. What have I
done wrong? Please help as I am an absolute beginner at VBA. Please see
code attached:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("G25"), Target) Is Nothing Then
Range("A28:A32").EntireRow.Hidden = True
If Target.Value = "Yes" Then
Range("A28:A32").EntireRow.Hidden = True
Range("A33:A999").EntireRow.Hidden = False
Else
If Target.Value = "" Then
Range("A28:A32").EntireRow.Hidden = True
Range("A33:A999").EntireRow.Hidden = False
Else
Range("A28:A32").EntireRow.Hidden = False
Range("A33:A999").EntireRow.Hidden = True
End If
End If
End If

If Not Application.Intersect(Range("E22"), Target) Is Nothing Then
Range("A53:A59").EntireRow.Hidden = True
If Target.Value = "No" Then
Range("A53:A59").EntireRow.Hidden = True
Else
Range("A53:A59").EntireRow.Hidden = False
End If
End If
End Sub








All times are GMT +1. The time now is 04:00 PM.

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