Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Can anyone please help?
I am currently repeating the following VBA code several hunderd times and change the Range and Rows values manually. Application.ScreenUpdating = False If Range("C5").Value = "" Then Rows("6:6").EntireRow.Hidden = True ElseIf Range("C5").Value < "" Then Rows("6:6").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C6").Value = "" Then Rows("7:7").EntireRow.Hidden = True ElseIf Range("C6").Value < "" Then Rows("7:7").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C7").Value = "" Then Rows("8:8").EntireRow.Hidden = True ElseIf Range("C7").Value < "" Then Rows("8:8").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C8").Value = "" Then Rows("9:9").EntireRow.Hidden = True ElseIf Range("C8").Value < "" Then Rows("9:9").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C9").Value = "" Then Rows("10:10").EntireRow.Hidden = True ElseIf Range("C9").Value < "" Then Rows("10:10").EntireRow.Hidden = False End If as you can imagine this is very labor intensive. I believe that there should be an easier way of doing this, can you please help? Thanks in advance. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
you could use Excel's AdvancedFilter to show only the rows when there is data in Column C. If you haven't used AdvancedFilter (in a long time), look he http://www.contextures.com/xladvfilter01.html and concerning your problem, especially he http://www.contextures.com/xladvfilter02.html#Blank Of course, you can start the AdvancedFilter via VBA... Regards, xlDominik. VS182501 schrieb: Can anyone please help? I am currently repeating the following VBA code several hunderd times and change the Range and Rows values manually. Application.ScreenUpdating = False If Range("C5").Value = "" Then Rows("6:6").EntireRow.Hidden = True ElseIf Range("C5").Value < "" Then Rows("6:6").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C6").Value = "" Then Rows("7:7").EntireRow.Hidden = True ElseIf Range("C6").Value < "" Then Rows("7:7").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C7").Value = "" Then Rows("8:8").EntireRow.Hidden = True ElseIf Range("C7").Value < "" Then Rows("8:8").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C8").Value = "" Then Rows("9:9").EntireRow.Hidden = True ElseIf Range("C8").Value < "" Then Rows("9:9").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C9").Value = "" Then Rows("10:10").EntireRow.Hidden = True ElseIf Range("C9").Value < "" Then Rows("10:10").EntireRow.Hidden = False End If as you can imagine this is very labor intensive. I believe that there should be an easier way of doing this, can you please help? Thanks in advance. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Use a loop.The below works from 5 to 100
Dim lngRow As Long Application.ScreenUpdating = False For lngRow = 5 To 100 If Range("C" & lngRow).Value = "" Then Rows(lngRow + 1).Hidden = True Else Rows(lngRow + 1).Hidden = False End If Next Application.ScreenUpdating = False -- If this post helps click Yes --------------- Jacob Skaria "VS182501" wrote: Can anyone please help? I am currently repeating the following VBA code several hunderd times and change the Range and Rows values manually. Application.ScreenUpdating = False If Range("C5").Value = "" Then Rows("6:6").EntireRow.Hidden = True ElseIf Range("C5").Value < "" Then Rows("6:6").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C6").Value = "" Then Rows("7:7").EntireRow.Hidden = True ElseIf Range("C6").Value < "" Then Rows("7:7").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C7").Value = "" Then Rows("8:8").EntireRow.Hidden = True ElseIf Range("C7").Value < "" Then Rows("8:8").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C8").Value = "" Then Rows("9:9").EntireRow.Hidden = True ElseIf Range("C8").Value < "" Then Rows("9:9").EntireRow.Hidden = False End If Application.ScreenUpdating = False If Range("C9").Value = "" Then Rows("10:10").EntireRow.Hidden = True ElseIf Range("C9").Value < "" Then Rows("10:10").EntireRow.Hidden = False End If as you can imagine this is very labor intensive. I believe that there should be an easier way of doing this, can you please help? Thanks in advance. |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
If you want VBA instead of AdvancedFilter, no loop necessary:
With Range("C5:C100") ..Rows.Hidden=False ' Show all ..SpecialCells(xlCellTypeBlanks).EntireRow.Hidden= true ' hide rows when cell is blank End With Regards, Dominik. Jacob Skaria schrieb: Use a loop.The below works from 5 to 100 Dim lngRow As Long Application.ScreenUpdating = False For lngRow = 5 To 100 If Range("C" & lngRow).Value = "" Then Rows(lngRow + 1).Hidden = True Else Rows(lngRow + 1).Hidden = False End If Next Application.ScreenUpdating = False |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
hide row based on cell value | Excel Worksheet Functions | |||
Hide row based on cell value | Excel Worksheet Functions | |||
Hide Rows based on value of a cell | Excel Programming | |||
Is there a way to HIDE a row based on a value of a cell ? | Excel Discussion (Misc queries) | |||
Hide Row Based on cell value | Excel Programming |