+ Reply to Thread
Results 1 to 5 of 5

VBA Hiding rows

Hybrid View

smithani VBA Hiding rows 10-28-2008, 09:42 AM
VBA Noob Try adding at the start of... 10-28-2008, 09:48 AM
smithani thanks, I tried that...but... 10-28-2008, 10:11 AM
VBA Noob Maybe Dim LastRow As... 10-28-2008, 10:30 AM
royUK It would probably be much... 10-28-2008, 10:34 AM
  1. #1
    Registered User
    Join Date
    10-15-2008
    Location
    miami
    Posts
    5

    VBA Hiding rows

    Hey does anyone know how I can make the following code more efficient, it seems to take a really long time to do this, the code hides the row if there is no data in the coloumn, it does it for 3 different sections:

    LastRow = Range("B65000").End(xlUp).Row
    For I = LastRow To 47 Step -1
    If Cells(I, "I") = "" Then
    Rows(I).Hidden = True
    End If
    Next I

    LastRow = Range("B65000").End(xlUp).Row
    For I = LastRow To 815 Step -1
    If WorksheetFunction.IsText(Cells(I, "I")) Then GoTo nexti
    If Abs(Cells(I, "I").Value) < 1 And Abs(Cells(I, "L").Value) < 1 Then
    Rows(I).Hidden = True
    nexti:
    End If
    Next I

    LastRow = Range("A65000").End(xlUp).Row
    For I = LastRow To 1387 Step -1
    If Cells(I, "A") = "" Then
    Rows(I).Hidden = True
    End If
    Next I
    Last edited by VBA Noob; 10-28-2008 at 09:46 AM.

  2. #2
    Forum Contributor VBA Noob's Avatar
    Join Date
    04-25-2006
    Location
    London, England
    MS-Off Ver
    xl03 & xl 07(Jan 09)
    Posts
    11,988
    Try adding at the start of the code

    Application.ScreenUpdating = False
    and then

    Application.ScreenUpdating = true
    at the end

    VBA Noob
    _________________________________________


    Credo Elvem ipsum etian vivere
    _________________________________________
    A message for cross posters

    Please remember to wrap code.

    Forum Rules

    Please add to your signature if you found this link helpful. Excel links !!!

  3. #3
    Registered User
    Join Date
    10-15-2008
    Location
    miami
    Posts
    5
    thanks, I tried that...but its still terribly slow...excel keeps freezing up

  4. #4
    Forum Contributor VBA Noob's Avatar
    Join Date
    04-25-2006
    Location
    London, England
    MS-Off Ver
    xl03 & xl 07(Jan 09)
    Posts
    11,988
    Maybe

    Dim LastRow As Long, i As Long
    
    Application.ScreenUpdating = False
    
    LastRow = Range("B65000").End(xlUp).Row
    For i = LastRow To 47 Step -1
        Select Case i
            Case 47 To 814
            Rows(i).Hidden = IIf(Cells(i, "I") = "", True, False)
            Case 815 To 1386
        If WorksheetFunction.IsText(Cells(i, "I")) Then GoTo nexti
        If Abs(Cells(i, "I").Value) < 1 And Abs(Cells(i, "L").Value) < 1 Then
        Rows(i).Hidden = True
    nexti:
        End If
    
            Case Is > 1386
            Rows(i).Hidden = IIf(Cells(i, "A") = "", True, False)
        End Select
    Next i
    Application.ScreenUpdating = True

  5. #5
    Forum Expert royUK's Avatar
    Join Date
    11-18-2003
    Location
    Derbyshire,UK
    MS-Off Ver
    Xp; 2007; 2010
    Posts
    26,200
    It would probably be much faster to use AutoFilter, does your data have header rows?. This will be faster for empty cells.
    Dim LastRow As Long
        Dim rng    As Range
        LastRow = Cells(Rows.Count, 1).End(xlUp).Row
        On Error Resume Next
        Set rng = Range(Cells(1, 1), Cells(LastRow, 1)).SpecialCells(xlCellTypeBlanks)
        On Error GoTo 0
        rng.EntireRow.Hidden = True
    Hope that helps.

    RoyUK
    --------
    For Excel Tips & Solutions, free examples and tutorials why not check out my web site

    Free DataBaseForm example

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1