Hide Rows and Columns code revision - xlCellTypeBlanks changed to formuala result ""

PhilW_34

Board Regular
Joined
Jan 4, 2007
Messages
128
Hello,

I'm updating a file I've used for a long time. In this file, I'd manually enter data in cells A5:A16. If I only entered in one cell in that range, the rest were blank. However, I've decided to upgrade the file and now I'm using formulas to populate data in A5=A16. My .specialCells(xlCellTypeBlanks) is no longer working on the cells that only look blank because the formula result is "". Other code below hides corresponding rows below my original range. I still need to do that.

Ultimately, how can I revise xlCellTypeBlanks to something like = ""? THanks.

Phil

Code:
Sub Hide_Rows()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

 With ActiveSheet 
        On Error Resume Next
        Set rngRowsToHide = .Range("A5:A16").SpecialCells(xlCellTypeBlanks)  '<- Need to fix this to make it work right again.
        Set rngColsToHide = .Range("F4:X4").SpecialCells(xlCellTypeBlanks)      '<- Need to fix this to make it work right again.

        
        On Error GoTo 0
    End With
    
    If Not rngRowsToHide Is Nothing Then
        Set rngRowsToHide = Union(rngRowsToHide, _
                                rngRowsToHide.Offset(23), _
                                rngRowsToHide.Offset(39), _
                                rngRowsToHide.Offset(55), _
                                rngRowsToHide.Offset(71))
 
        rngRowsToHide.EntireRow.Hidden = True
    End If
    On Error Resume Next
    If Not rngColsToHide Is Nothing Then
        Set rngColsToHide = Union(rngColsToHide, _
                                rngColsToHide.Offset(0, 24))
        rngColsToHide.EntireColumn.Hidden = True
    End If
    Columns("Z:AF").EntireColumn.Hidden = False
    On Error Resume Next

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub
 

Some videos you may like

Excel Facts

Which Excel functions can ignore hidden rows?
The SUBTOTAL and AGGREGATE functions ignore hidden rows. AGGREGATE can also exclude error cells and more.

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
42,430
Office Version
365
Platform
Windows
You will need to loop through the ranges like
Code:
   For Each Cl In .Range("A5:A16")
      If Cl.Value = "" Then
         If rngRowsToHide Is Nothing Then Set rngRowsToHide = Cl Else Set rngRowsToHide = Union(rngRowsToHide, Cl)
      End If
   Next Cl
   For Each Cl In .Range("F4:X4")
      If Cl.Value = "" Then
         If rngColsToHide Is Nothing Then Set rngColsToHide = Cl Else Set rngColsToHide = Union(rngColsToHide, Cl)
      End If
   Next Cl
 

PhilW_34

Board Regular
Joined
Jan 4, 2007
Messages
128
Thanks Fluff. I ticked out my code and tried running this. I'm getting an error on "If rngRowsToHide Is Nothing Then"

Rich (BB code):
Sub Hide_Rows()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

 With ActiveSheet 
 '   On Error Resume Next
        For Each Cl In .Range("A5:A16")
            If Cl.Value = "" Then
'Runtime error 424 here ->  If rngRowsToHide Is Nothing Then Set rngRowsToHide = Cl Else Set rngRowsToHide = Union(rngRowsToHide, Cl)
                End If
        Next Cl
        For Each Cl In .Range("F4:X4")
            If Cl.Value = "" Then
            If rngColsToHide Is Nothing Then Set rngColsToHide = Cl Else Set rngColsToHide = Union(rngColsToHide, Cl)
                End If
        Next Cl
        
 '       Set rngRowsToHide = .Range("A5:A16").SpecialCells(xlCellTypeBlanks)
'        'Set rngColsToHide = .Range("F4:X4").SpecialCells(xlCellTypeBlanks)

        
'        On Error GoTo 0
End With
    

'    If Not rngRowsToHide Is Nothing Then
'        Set rngRowsToHide = Union(rngRowsToHide, _
                                rngRowsToHide.Offset(23), _
                                rngRowsToHide.Offset(39), _
                                rngRowsToHide.Offset(55), _
                                rngRowsToHide.Offset(71))
 
'        rngRowsToHide.EntireRow.Hidden = True
'    End If
'    On Error Resume Next
'    If Not rngColsToHide Is Nothing Then
'        Set rngColsToHide = Union(rngColsToHide, _
                                rngColsToHide.Offset(0, 24))
'        rngColsToHide.EntireColumn.Hidden = True
'    End If
'    Columns("Z:AF").EntireColumn.Hidden = False
'    On Error Resume Next
    ActiveSheet.Range("$A$90:$C$306").AutoFilter Field:=2, Criteria1:="<>"
    Range("B17").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub
 

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
42,430
Office Version
365
Platform
Windows
Try declaring the variables
Code:
Dim rngRowsToHide As Range, rngColsToHide As Range, Cl As Range
 

PhilW_34

Board Regular
Joined
Jan 4, 2007
Messages
128
Thanks again Fluff.

That took care of the runtime error. However, when I run the code, the screen just blinks and no rows or columns hide. Hmmm...

Thanks,

Phil
 

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
42,430
Office Version
365
Platform
Windows
That code was just to replace this
Code:
        Set rngRowsToHide = .Range("A5:A16").SpecialCells(xlCellTypeBlanks)  '<- Need to fix this to make it work right again.
        Set rngColsToHide = .Range("F4:X4").SpecialCells(xlCellTypeBlanks)      '<- Need to fix this to make it work right again.
 

PhilW_34

Board Regular
Joined
Jan 4, 2007
Messages
128
Hi Fluff,

And...Now you're my hero. Kicking tail and taking names on a Saturday. Many thanks! I was too smart for my own good. Once I removed the ticks from the rest of the code, it worked perfectly. Thanks again.

Phil
 

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
42,430
Office Version
365
Platform
Windows
You're welcome & thanks for the feedback
 

Watch MrExcel Video

Forum statistics

Threads
1,101,956
Messages
5,483,883
Members
407,419
Latest member
Napoleao Paca

This Week's Hot Topics

  • Finding issue in If elseif else with For each Loop
    Finding issue in If elseif else with For each Loop I have tried this below code but i'm getting in Y column filled with W005. Colud you please...
  • MsgBox Error
    Hi Guys, I have the below error show up when i try and run my macro in File1 but works fine if i copy and paste the same code into file2. [ATTACH...
  • CELL FORMAT - IF CONDITION
    My Cell Format is [B]""0.00" Cr". [/B]But in the cell, it is showing 123.00 for editing. (123 is entry figure). (Data imported from other...
  • Show numbers nearly the same
    Is this possible. I have a number that can change very time eg 0.00001234 Then I have a lot of numbers 0.0000001, 0.0000002, 0.00000004...
  • Please i need your help to create formula
    I need a formula in cell B8 to do this >>if b1=1 then multiply ( cell b8) by 10% ,if b1=2 multiply by 20%,if=3 multiply by 30%. Thank you in...
  • Got error while adding column and filter
    Got error while adding column and filter In column Z has some like "Success" and "Error". I want to add column in AA if the Z cell value is...
Top