Cómo separar un procedimiento demasiado largo en diferentes módulos. Error de compilación. Excel VBA.

Una vez más apelando a la valiosa ayuda que puedan brindar. Mi problema es el siguiente:

Estoy creando un procedimiento en un módulo que posteriormente llamaré mediante un botón insertado en una hoja de Excel, sin embargo mientras he estado avanzando he llegado a un punto donde me arroja un error de compilación diciéndome que el procedimiento es demasiado largo, he revisado la cantidad de líneas que contiene y ha alcanzado casi las 1500. He pensado en fragmentarlos en nuevos módulos para hacer la llamada cuando se requiera un procedimiento en específico; sin embargo, el procedimiento general al contener ciclos For Next que crearán puntos de inicio y final en los rangos donde se ejecutarán las funciones. No sé como enlazar a los nuevos módulos que crearé para separar los procedimientos, por ahora estaba usando un Select Case. ¿Cómo separo las variables en los nuevos módulos? Alguna idea.

Sub Calcular()
Dim Variable1 As String
Dim Variable2 As String
Dim Variable3 As Long
.
.
.
Dim Variable19 As Integer
Dim Variable20 As Integer
Dim Variable21 As Integer
For 
    If 
        [Código]
        Exit For
    End If
Next
For 
    If 
        [Código]
        Exit For
    End If
Next
For
    [Código]
    [Código]
    [Código]
    [Código]
    Select Case 
        Case Is = 
            [Código]
            [Código]
                If 
                [Código]
                End If
            [Código]
            [Código]                
        Case Is = 
            [Código]
            [Código]
                If 
                [Código]
                End If
            [Código]
            [Código] 
        Case Is =
            [Código]
            [Código]
                If 
                [Código]
                End If
            [Código]
            [Código] 
        Case Is = 
            [Código]
            [Código]
                If 
                [Código]
                End If
            [Código]
            [Código] 
        Case Is = 
            [Código]
            [Código]
                If 
                [Código]
                End If
            [Código]
            [Código] 
        Case Is = 
            [Código]
            [Código]
                If 
                [Código]
                End If
            [Código]
            [Código]
    End Select 
Next

Esa es la estructura del proyecto.

2 Respuestas

Respuesta
1

No sé si te serviré de ayuda porque de Excel no tengo ni idea, pero cuando construyes un módulo creas algo como, por ejemplo

Sub Imprimirloquesea()

dim....

docmd...

En otro módulo

Sub Encontrar lo que sea

dim...

docmd.lo que quieres que haga

Entonces desde ese formulario que dices, el código lo puedes dejar, como, por ejemplo,

If codigo=...then

call encontrarloquesea

elseif codigo=.... then

call imprimir

O lo haces con el select case

Respuesta
1

Es así como te respondió Icue.

Y si una macro debe ejecutarse con el valor de algunas variables la llamarás de este modo, suponiendo que sea con el Select

Select case x

Case is = 1

Call primerMacro(variable1, variable2.... las que tengas)

Case is = 2

Call segundaMacro(variable1)

.....

Y las subrutinas se inician también con variables:

Sub primerMacro(val1, val2)

'....

End sub

Te recuerdo que la consulta sigue abierta. Si no deseas continuarla puedes valorarlas de todos modos atento a que te la respondimos. Y de ese modo se me quita de la lista de 'respuestas pendientes'.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas