From: JStiehl on
I'm a VBA newbie and have searched for an answer for how to do this, but must
be doing something wrong when I've tried other codes. I need to have rows
automatically hide or unhide based on a value in column D. If the value in
column D is Y, the row should not be hidden; if the value is N, the row
should be hidden. These values may change, so the rows need to be able to
hide/unhide automatically.

When I've entered codes in before, I click on the tab for this worksheet,
select View Code, choose Insert Module, and then insert the code. There is
already a code in this worksheet for something else, so I can't just add it
in after selecting View Code. Am I putting the code in the wrong spot?
Should I be choosing something else other than Insert Module?

I've tried out so many different codes thinking that was the problem, but
now I think I may just be entering it wrong. I appreciate your help.
From: Jacob Skaria on
Select the sheet tab which you want to work with. Right click the sheet tab
and click on 'View Code'. This will launch VBE. Paste the below code to the
right blank portion. Get back to to workbook and try out.


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then Rows(Target.Row).Hidden = (UCase(Target.Text) = "N")
End Sub

--
Jacob (MVP - Excel)


"JStiehl" wrote:

> I'm a VBA newbie and have searched for an answer for how to do this, but must
> be doing something wrong when I've tried other codes. I need to have rows
> automatically hide or unhide based on a value in column D. If the value in
> column D is Y, the row should not be hidden; if the value is N, the row
> should be hidden. These values may change, so the rows need to be able to
> hide/unhide automatically.
>
> When I've entered codes in before, I click on the tab for this worksheet,
> select View Code, choose Insert Module, and then insert the code. There is
> already a code in this worksheet for something else, so I can't just add it
> in after selecting View Code. Am I putting the code in the wrong spot?
> Should I be choosing something else other than Insert Module?
>
> I've tried out so many different codes thinking that was the problem, but
> now I think I may just be entering it wrong. I appreciate your help.
From: JStiehl on
I followed your directions and entered the code and there was no change. My
rows with an N in column D are not hidden.

"Jacob Skaria" wrote:

> Select the sheet tab which you want to work with. Right click the sheet tab
> and click on 'View Code'. This will launch VBE. Paste the below code to the
> right blank portion. Get back to to workbook and try out.
>
>
> Private Sub Worksheet_Change(ByVal Target As Range)
> If Target.Column = 4 Then Rows(Target.Row).Hidden = (UCase(Target.Text) = "N")
> End Sub
>
> --
> Jacob (MVP - Excel)
>
>
> "JStiehl" wrote:
>
> > I'm a VBA newbie and have searched for an answer for how to do this, but must
> > be doing something wrong when I've tried other codes. I need to have rows
> > automatically hide or unhide based on a value in column D. If the value in
> > column D is Y, the row should not be hidden; if the value is N, the row
> > should be hidden. These values may change, so the rows need to be able to
> > hide/unhide automatically.
> >
> > When I've entered codes in before, I click on the tab for this worksheet,
> > select View Code, choose Insert Module, and then insert the code. There is
> > already a code in this worksheet for something else, so I can't just add it
> > in after selecting View Code. Am I putting the code in the wrong spot?
> > Should I be choosing something else other than Insert Module?
> >
> > I've tried out so many different codes thinking that was the problem, but
> > now I think I may just be entering it wrong. I appreciate your help.
From: Jacob Skaria on
The earlier code only works for new entries made....If you want a macro to
hide the existing entries try the below

--From workbook launch VBE using short-key Alt+F11.
--From menu 'Insert' a module and paste the below code.
--Get back to Workbook.
--Run macro from Tools|Macro|Run <selected macro()>


Sub MyMacro()
Dim lngRow As Long
For lngRow = 1 To Cells(Rows.Count, "D").End(xlUp).Row
Rows(lngRow).Hidden = (UCase(Range("D" & lngRow)) = "N")
Next
End Sub


--
Jacob (MVP - Excel)


"JStiehl" wrote:

> I followed your directions and entered the code and there was no change. My
> rows with an N in column D are not hidden.
>
> "Jacob Skaria" wrote:
>
> > Select the sheet tab which you want to work with. Right click the sheet tab
> > and click on 'View Code'. This will launch VBE. Paste the below code to the
> > right blank portion. Get back to to workbook and try out.
> >
> >
> > Private Sub Worksheet_Change(ByVal Target As Range)
> > If Target.Column = 4 Then Rows(Target.Row).Hidden = (UCase(Target.Text) = "N")
> > End Sub
> >
> > --
> > Jacob (MVP - Excel)
> >
> >
> > "JStiehl" wrote:
> >
> > > I'm a VBA newbie and have searched for an answer for how to do this, but must
> > > be doing something wrong when I've tried other codes. I need to have rows
> > > automatically hide or unhide based on a value in column D. If the value in
> > > column D is Y, the row should not be hidden; if the value is N, the row
> > > should be hidden. These values may change, so the rows need to be able to
> > > hide/unhide automatically.
> > >
> > > When I've entered codes in before, I click on the tab for this worksheet,
> > > select View Code, choose Insert Module, and then insert the code. There is
> > > already a code in this worksheet for something else, so I can't just add it
> > > in after selecting View Code. Am I putting the code in the wrong spot?
> > > Should I be choosing something else other than Insert Module?
> > >
> > > I've tried out so many different codes thinking that was the problem, but
> > > now I think I may just be entering it wrong. I appreciate your help.
From: JStiehl on
Thanks so much for your help. I don't know what my problem is, but it still
isn't working. I pasted the code per your directions, but when I run the
macro "My Macro", nothing changes or happens.

"Jacob Skaria" wrote:

> The earlier code only works for new entries made....If you want a macro to
> hide the existing entries try the below
>
> --From workbook launch VBE using short-key Alt+F11.
> --From menu 'Insert' a module and paste the below code.
> --Get back to Workbook.
> --Run macro from Tools|Macro|Run <selected macro()>
>
>
> Sub MyMacro()
> Dim lngRow As Long
> For lngRow = 1 To Cells(Rows.Count, "D").End(xlUp).Row
> Rows(lngRow).Hidden = (UCase(Range("D" & lngRow)) = "N")
> Next
> End Sub
>
>
> --
> Jacob (MVP - Excel)
>
>
> "JStiehl" wrote:
>
> > I followed your directions and entered the code and there was no change. My
> > rows with an N in column D are not hidden.
> >
> > "Jacob Skaria" wrote:
> >
> > > Select the sheet tab which you want to work with. Right click the sheet tab
> > > and click on 'View Code'. This will launch VBE. Paste the below code to the
> > > right blank portion. Get back to to workbook and try out.
> > >
> > >
> > > Private Sub Worksheet_Change(ByVal Target As Range)
> > > If Target.Column = 4 Then Rows(Target.Row).Hidden = (UCase(Target.Text) = "N")
> > > End Sub
> > >
> > > --
> > > Jacob (MVP - Excel)
> > >
> > >
> > > "JStiehl" wrote:
> > >
> > > > I'm a VBA newbie and have searched for an answer for how to do this, but must
> > > > be doing something wrong when I've tried other codes. I need to have rows
> > > > automatically hide or unhide based on a value in column D. If the value in
> > > > column D is Y, the row should not be hidden; if the value is N, the row
> > > > should be hidden. These values may change, so the rows need to be able to
> > > > hide/unhide automatically.
> > > >
> > > > When I've entered codes in before, I click on the tab for this worksheet,
> > > > select View Code, choose Insert Module, and then insert the code. There is
> > > > already a code in this worksheet for something else, so I can't just add it
> > > > in after selecting View Code. Am I putting the code in the wrong spot?
> > > > Should I be choosing something else other than Insert Module?
> > > >
> > > > I've tried out so many different codes thinking that was the problem, but
> > > > now I think I may just be entering it wrong. I appreciate your help.