ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Excel VBA-hide row worksheet event (https://www.excelbanter.com/excel-programming/294042-excel-vba-hide-row-worksheet-event.html)

kabrahani

Excel VBA-hide row worksheet event
 
I am trying to use Visual Basic to automatically hide rows in Excel.
Basically, I have a sheet that has 50 rows (A12:A62)…each cell i
column A is linked to another sheet and comes back as a 0 or a
depending on pull-down options throughout the workbook. If the lin
comes back as a 1, I want the entire row to hide, otherwise, show th
row.

Also, I don’t want to have to run a macro. I want the rows t
hide/unhide whenever someone is looking at that sheet and changes som
criteria. I put the following code and it works if I manually chang
the value in A12, but when A12 is linked to another cell, the ro
doesn’t hide when the value changes.

Private Sub Worksheet_change(ByVal Target As Excel.Range)

If Target.Address = "$A$12" Then
If Target.Value = 1 Then
Range("a12").Select
Selection.EntireRow.Hidden = True
Else
Range("a12").Select
Selection.EntireRow.Hidden = False
End If
End If
End Sub

Does anybody know how to make this work when A12 is linked? Also
ultimately I will have to make this apply to 50 rows (A12:62). Ho
would I do this without repeating the above code for each row

--
Message posted from http://www.ExcelForum.com


Rob van Gelder[_4_]

Excel VBA-hide row worksheet event
 
How about whenever the sheet is activated?

Private Sub Worksheet_Activate()
Dim rng As Range

For Each rng In Range("A12:A62")
If rng.Value = 1 Then rng.EntireRow.Hidden = True
Next
End Sub


--
Rob van Gelder - http://www.vangelder.co.nz/excel


"kabrahani " wrote in message
...
I am trying to use Visual Basic to automatically hide rows in Excel.
Basically, I have a sheet that has 50 rows (A12:A62)…each cell in
column A is linked to another sheet and comes back as a 0 or a 1
depending on pull-down options throughout the workbook. If the link
comes back as a 1, I want the entire row to hide, otherwise, show the
row.

Also, I don’t want to have to run a macro. I want the rows to
hide/unhide whenever someone is looking at that sheet and changes some
criteria. I put the following code and it works if I manually change
the value in A12, but when A12 is linked to another cell, the row
doesn’t hide when the value changes.

Private Sub Worksheet_change(ByVal Target As Excel.Range)

If Target.Address = "$A$12" Then
If Target.Value = 1 Then
Range("a12").Select
Selection.EntireRow.Hidden = True
Else
Range("a12").Select
Selection.EntireRow.Hidden = False
End If
End If
End Sub

Does anybody know how to make this work when A12 is linked? Also,
ultimately I will have to make this apply to 50 rows (A12:62). How
would I do this without repeating the above code for each row?


---
Message posted from http://www.ExcelForum.com/




Tom Ogilvy

Excel VBA-hide row worksheet event
 
Private Sub Worksheet_Calculate()

for each cell in me.Range("a12:A62")
if isnumeric(cell) then
if cell = 1 then
cell.entireRow.Hidden = True
Else
cell.EntireRow.Hidden = False
End if
End if
Next
End Sub

--
Regards,
Tom Ogilvy

"kabrahani " wrote in message
...
I am trying to use Visual Basic to automatically hide rows in Excel.
Basically, I have a sheet that has 50 rows (A12:A62).each cell in
column A is linked to another sheet and comes back as a 0 or a 1
depending on pull-down options throughout the workbook. If the link
comes back as a 1, I want the entire row to hide, otherwise, show the
row.

Also, I don't want to have to run a macro. I want the rows to
hide/unhide whenever someone is looking at that sheet and changes some
criteria. I put the following code and it works if I manually change
the value in A12, but when A12 is linked to another cell, the row
doesn't hide when the value changes.

Private Sub Worksheet_change(ByVal Target As Excel.Range)

If Target.Address = "$A$12" Then
If Target.Value = 1 Then
Range("a12").Select
Selection.EntireRow.Hidden = True
Else
Range("a12").Select
Selection.EntireRow.Hidden = False
End If
End If
End Sub

Does anybody know how to make this work when A12 is linked? Also,
ultimately I will have to make this apply to 50 rows (A12:62). How
would I do this without repeating the above code for each row?


---
Message posted from http://www.ExcelForum.com/





All times are GMT +1. The time now is 01:23 PM.

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