• Viernes 19 de Abril de 2024, 21:09

Autor Tema:  como solucionar error de compilacion Procedimiento demasiado largo  (Leído 3069 veces)

nitramara

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
como solucionar error de compilacion Procedimiento demasiado largo
« en: Jueves 22 de Enero de 2015, 18:09 »
0
Hola buen dia.. el caso que tengo, lo presento porque no he podido solucionar por mas que le he buscado por todos lados.. el asunto es asi: Tengo en un user form dos elementos un combobox y un multipage.. el combo lo alimento desde una lista traida de una hoja.. y el multipage tiene 9 pestañas.. la idea es que se selecciona una zona (Combo) y cada una de las zonas tiene diferentes areas (Multipage)... bueno como tengo "obligatorio" mas de 100 Zonas cuando realizo en codigo se me bloquea o revienta (Procedimiento demasiado largo).. he realizado pruebas y efectivamente el codigo funciona a la perfeccion con hasta 54 entre Zonas y Areas.. pero tengo mas de 100...
La pregunta es como hago para partir el codigo sin afectar la estructura..
Ah.. se me olvidaba en un principio lo habia realizado con solo IF.. y lo mismo.. luego lo cambie a combinarlo con IF y CASE.. pero nada..
aca pongo algo de codigo... todo lo tengo en el evento click del combobox.. 
Código: [Seleccionar]
Private Sub ComboBox1_click()
Dim areas As Integer
areas = MultiPage1.Value
If ComboBox1.Value = "contabilidad" Then
  Select Case areas
    Case Is = 0
        Mapa.Hide
        Sheets("costos").Visible = True
        Sheets("costos").Select
        Range("A1").Select
    Case Is = 1
        Mapa.Hide
        Sheets("contabilidad_CO").Visible = True
        Sheets("contabilidad_CO").Select
        Range("A1").Select
    Case Is = 2
        Mapa.Hide
        Sheets("contabilidad_PER").Visible = True
        Sheets("contabilidad_PER").Select
        Range("A1").Select
    Case Is = 3
        Mapa.Hide
        Sheets("contabilidad_ES").Visible = True
        Sheets("contabilidad_ES").Select
        Range("A1").Select
    Case Is = 4
        Mapa.Hide
        Sheets("contabilidad_CAL").Visible = True
        Sheets("contabilidad_CAL").Select
        Range("A1").Select
    Case Is = 5
        Mapa.Hide
        Sheets("contabilidad_PERDOC").Visible = True
        Sheets("contabilidad_PERDOC").Select
        Range("A1").Select
    Case Is = 6
        Mapa.Hide
        Sheets("contabilidad_FINAN").Visible = True
        Sheets("contabilidad_FINAN").Select
        Range("A1").Select
    Case Is = 7
        Mapa.Hide
        Sheets("contabilidad_EMBE").Visible = True
        Sheets("contabilidad_EMBE").Select
        Range("A1").Select
    Case Else
        Mapa.Hide
        Sheets("contabilidad_INFRA").Visible = True
        Sheets("contabilidad_INFRA").Select
        Range("A1").Select
  End Select
End If
If ComboBox1.Value = "Financiera" Then
  Select Case areas
    Case Is = 0
        Mapa.Hide
        Sheets("Financiera").Visible = True
        Sheets("Financiera").Select
        Range("A1").Select
    Case Is = 1
        Mapa.Hide
        Sheets("Financiera_CO").Visible = True
        Sheets("Financiera_CO").Select
        Range("A1").Select
    Case Is = 2
        Mapa.Hide
        Sheets("Financiera_PER").Visible = True
        Sheets("Financiera_PER").Select
        Range("A1").Select
    Case Is = 3
        Mapa.Hide
        Sheets("Financiera_ES").Visible = True
        Sheets("Financiera_ES").Select
        Range("A1").Select
    Case Is = 4
        Mapa.Hide
        Sheets("Financiera_CAL").Visible = True
        Sheets("Financiera_CAL").Select
        Range("A1").Select
    Case Is = 5
        Mapa.Hide
        Sheets("Financiera_PERDOC").Visible = True
        Sheets("Financiera_PERDOC").Select
        Range("A1").Select
    Case Is = 6
        Mapa.Hide
        Sheets("Financiera_FINAN").Visible = True
        Sheets("Financiera_FINAN").Select
        Range("A1").Select
    Case Is = 7
        Mapa.Hide
        Sheets("Financiera_EMBE").Visible = True
        Sheets("Financiera_EMBE").Select
        Range("A1").Select
    Case Else
        Mapa.Hide
        Sheets("Financiera_INFRA").Visible = True
        Sheets("Financiera_INFRA").Select
        Range("A1").Select
  End Select
End If
end sub
Como pueden ver el codigo creo esta bien pero no corre aparece error procedimiento demasiado largo alguien me tira una ida bien sea para que todo quepa en el procedimiento sin que tire error.. o bien sea para partir el codigo... muchas gracias..