Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Automatically hide/unhide rows

86 views
Skip to first unread message

JStiehl

unread,
Apr 23, 2010, 7:20:01 AM4/23/10
to
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.

JStiehl

unread,
Apr 23, 2010, 8:24:02 AM4/23/10
to
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)

Jacob Skaria

unread,
Apr 23, 2010, 8:40:01 AM4/23/10
to
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

JStiehl

unread,
Apr 23, 2010, 9:04:01 AM4/23/10
to
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

unread,
Apr 23, 2010, 9:29:01 AM4/23/10
to
Set the Security level to low/medium in (Tools|Macro|Security) and reopen excel

JStiehl

unread,
Apr 26, 2010, 8:29:01 AM4/26/10
to
The security level was set at medium, I changed it to low...it's still not
working when I run the macro. Any other ideas? Thanks so much for your help.
0 new messages