Results 1 to 3 of 3

problem with combo boxes

Threaded View

  1. #1
    Registered User
    Join Date
    10-15-2008
    Location
    Sydney
    MS-Off Ver
    Excel 2007
    Posts
    93

    problem with combo boxes

    Hi All

    Firstly, question regarding combo boxes... which one should I use: the Form version or the Active X one? (I'm using Excel 2007, but I want the file to be compatible with the 2003 version, and am working in Compatibility mode).

    All I want is to happen is that depending on which option a user selects from the drop down box (a total of 10 options), a select number of rows and columns should be hidden/visible (as you'll see from the below code..)

    The other issue I'm having is that with the below code, the workbook seems to be very "busy" constantly calculating something or the other. I need the Sub to be run ONLY when a user changes a selection in the combo box, but it appears that every few seconds the workbook will be calculating something.

    Finally, I introduced the GoTo Endo line after every option (1 to 10) to try and speed up the Sub when a user makes a selection, but this appears to make no differnce - it still takes forever to run the Sub.

    I am not an experienced programmer at all, so please feel free to criticise my methods altogether!!

    Thanks

    Option Explicit
    
    Private Sub ComboBox1_Change()
    Dim Col As Range
    
    On Error Resume Next
    
    Application.ScreenUpdating = False
    'No recursion
    Application.EnableEvents = False
    
       
        If Range("B2:B2") = 1 Then
            Rows("18:999").EntireRow.Hidden = True
            Rows("21:23").EntireRow.Hidden = False
            Rows("25:26").EntireRow.Hidden = False
            Rows("29:30").EntireRow.Hidden = False
            Rows("32:32").EntireRow.Hidden = False
            Rows("38:41").EntireRow.Hidden = False
            Rows("43:43").EntireRow.Hidden = False
            Rows("45:46").EntireRow.Hidden = False
            Rows("49:49").EntireRow.Hidden = False
            Rows("53:55").EntireRow.Hidden = False
            Rows("58:63").EntireRow.Hidden = False
                    
            With ActiveWorkbook.Sheets("1TLA")
                For Each Col In .Range("R19:HQ19").Columns
                    Col.EntireColumn.Hidden = _
                    Application.Sum(Col) = 0
                Next
            End With
            GoTo endo
        End If
        
        If Range("B2:B2") = 2 Then
            Rows("18:999").EntireRow.Hidden = True
            Rows("121:123").EntireRow.Hidden = False
            Rows("125:126").EntireRow.Hidden = False
            Rows("129:130").EntireRow.Hidden = False
            Rows("132:132").EntireRow.Hidden = False
            Rows("138:141").EntireRow.Hidden = False
            Rows("143:143").EntireRow.Hidden = False
            Rows("145:146").EntireRow.Hidden = False
            Rows("149:149").EntireRow.Hidden = False
            Rows("153:155").EntireRow.Hidden = False
            Rows("158:163").EntireRow.Hidden = False
                    
            With ActiveWorkbook.Sheets("1TLA")
                For Each Col In .Range("R119:HQ119").Columns
                    Col.EntireColumn.Hidden = _
                    Application.Sum(Col) = 0
                Next
            End With
            GoTo endo
        End If
    
        If Range("B2:B2") = 3 Then
            Rows("18:999").EntireRow.Hidden = True
            Rows("221:223").EntireRow.Hidden = False
            Rows("225:226").EntireRow.Hidden = False
            Rows("229:230").EntireRow.Hidden = False
            Rows("232:232").EntireRow.Hidden = False
            Rows("238:241").EntireRow.Hidden = False
            Rows("243:243").EntireRow.Hidden = False
            Rows("245:246").EntireRow.Hidden = False
            Rows("249:249").EntireRow.Hidden = False
            Rows("253:255").EntireRow.Hidden = False
            Rows("258:263").EntireRow.Hidden = False
                    
            With ActiveWorkbook.Sheets("1TLA")
                For Each Col In .Range("R219:HQ219").Columns
                    Col.EntireColumn.Hidden = _
                    Application.Sum(Col) = 0
                Next
            End With
            GoTo endo
        End If
    
        If Range("B2:B2") = 4 Then
            Rows("18:999").EntireRow.Hidden = True
            Rows("321:323").EntireRow.Hidden = False
            Rows("325:326").EntireRow.Hidden = False
            Rows("329:330").EntireRow.Hidden = False
            Rows("332:332").EntireRow.Hidden = False
            Rows("338:341").EntireRow.Hidden = False
            Rows("343:343").EntireRow.Hidden = False
            Rows("345:346").EntireRow.Hidden = False
            Rows("349:349").EntireRow.Hidden = False
            Rows("353:355").EntireRow.Hidden = False
            Rows("358:363").EntireRow.Hidden = False
                    
            With ActiveWorkbook.Sheets("1TLA")
                For Each Col In .Range("R319:HQ319").Columns
                    Col.EntireColumn.Hidden = _
                    Application.Sum(Col) = 0
                Next
            End With
            GoTo endo
        End If
        
        If Range("B2:B2") = 5 Then
            Rows("18:999").EntireRow.Hidden = True
            Rows("421:423").EntireRow.Hidden = False
            Rows("425:426").EntireRow.Hidden = False
            Rows("429:430").EntireRow.Hidden = False
            Rows("432:432").EntireRow.Hidden = False
            Rows("438:441").EntireRow.Hidden = False
            Rows("443:443").EntireRow.Hidden = False
            Rows("445:446").EntireRow.Hidden = False
            Rows("449:449").EntireRow.Hidden = False
            Rows("453:455").EntireRow.Hidden = False
            Rows("458:463").EntireRow.Hidden = False
                    
            With ActiveWorkbook.Sheets("1TLA")
                For Each Col In .Range("R419:HQ419").Columns
                    Col.EntireColumn.Hidden = _
                    Application.Sum(Col) = 0
                Next
            End With
            GoTo endo
        End If
    
        If Range("B2:B2") = 6 Then
            Rows("18:999").EntireRow.Hidden = True
            Rows("521:523").EntireRow.Hidden = False
            Rows("525:526").EntireRow.Hidden = False
            Rows("529:530").EntireRow.Hidden = False
            Rows("532:532").EntireRow.Hidden = False
            Rows("538:541").EntireRow.Hidden = False
            Rows("543:543").EntireRow.Hidden = False
            Rows("545:546").EntireRow.Hidden = False
            Rows("549:549").EntireRow.Hidden = False
            Rows("553:555").EntireRow.Hidden = False
            Rows("558:563").EntireRow.Hidden = False
                    
            With ActiveWorkbook.Sheets("1TLA")
                For Each Col In .Range("R519:HQ519").Columns
                    Col.EntireColumn.Hidden = _
                    Application.Sum(Col) = 0
                Next
            End With
            GoTo endo
        End If
        
        
        If Range("B2:B2") = 7 Then
            Rows("18:999").EntireRow.Hidden = True
            Rows("621:623").EntireRow.Hidden = False
            Rows("625:626").EntireRow.Hidden = False
            Rows("629:630").EntireRow.Hidden = False
            Rows("632:632").EntireRow.Hidden = False
            Rows("638:641").EntireRow.Hidden = False
            Rows("643:643").EntireRow.Hidden = False
            Rows("645:646").EntireRow.Hidden = False
            Rows("649:649").EntireRow.Hidden = False
            Rows("653:655").EntireRow.Hidden = False
            Rows("658:663").EntireRow.Hidden = False
                    
            With ActiveWorkbook.Sheets("1TLA")
                For Each Col In .Range("R619:HQ619").Columns
                    Col.EntireColumn.Hidden = _
                    Application.Sum(Col) = 0
                Next
            End With
            GoTo endo
        End If
        
        If Range("B2:B2") = 8 Then
            Rows("18:999").EntireRow.Hidden = True
            Rows("721:723").EntireRow.Hidden = False
            Rows("725:726").EntireRow.Hidden = False
            Rows("729:730").EntireRow.Hidden = False
            Rows("732:732").EntireRow.Hidden = False
            Rows("738:741").EntireRow.Hidden = False
            Rows("743:743").EntireRow.Hidden = False
            Rows("745:746").EntireRow.Hidden = False
            Rows("749:749").EntireRow.Hidden = False
            Rows("753:755").EntireRow.Hidden = False
            Rows("758:763").EntireRow.Hidden = False
                    
            With ActiveWorkbook.Sheets("1TLA")
                For Each Col In .Range("R719:HQ719").Columns
                    Col.EntireColumn.Hidden = _
                    Application.Sum(Col) = 0
                Next
            End With
            GoTo endo
        End If
        
        If Range("B2:B2") = 9 Then
            Rows("18:999").EntireRow.Hidden = True
            Rows("821:823").EntireRow.Hidden = False
            Rows("825:826").EntireRow.Hidden = False
            Rows("829:830").EntireRow.Hidden = False
            Rows("832:832").EntireRow.Hidden = False
            Rows("838:841").EntireRow.Hidden = False
            Rows("843:843").EntireRow.Hidden = False
            Rows("845:846").EntireRow.Hidden = False
            Rows("849:849").EntireRow.Hidden = False
            Rows("853:855").EntireRow.Hidden = False
            Rows("858:863").EntireRow.Hidden = False
                    
            With ActiveWorkbook.Sheets("1TLA")
                For Each Col In .Range("R819:HQ819").Columns
                    Col.EntireColumn.Hidden = _
                    Application.Sum(Col) = 0
                Next
            End With
            GoTo endo
        End If
        
        If Range("B2:B2") = 10 Then
            Rows("18:999").EntireRow.Hidden = True
            Rows("921:923").EntireRow.Hidden = False
            Rows("925:926").EntireRow.Hidden = False
            Rows("929:930").EntireRow.Hidden = False
            Rows("932:932").EntireRow.Hidden = False
            Rows("938:941").EntireRow.Hidden = False
            Rows("943:943").EntireRow.Hidden = False
            Rows("945:946").EntireRow.Hidden = False
            Rows("949:949").EntireRow.Hidden = False
            Rows("953:955").EntireRow.Hidden = False
            Rows("958:963").EntireRow.Hidden = False
                    
            With ActiveWorkbook.Sheets("1TLA")
                For Each Col In .Range("R919:HQ919").Columns
                    Col.EntireColumn.Hidden = _
                    Application.Sum(Col) = 0
                Next
            End With
            GoTo endo
        End If
    
    endo:
    
        Set Col = Nothing
        Application.ScreenUpdating = True
        Application.EnableEvents = True
    
    On Error GoTo 0
    End Sub
    Last edited by sunilmulay; 05-17-2009 at 03:47 AM.

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