Error de Compilación por Proceso Demasiado Largo

Dante

Con las disculpas del caso y atento a que ya estoy haciendo pruebas de escritorio, salta este error que jamas había visto.

¿Es cierto que el código que tengo es extenso pero tanto como para que salte este cartel?

Si no te parece mal, me tomare el atrevimiento de pasártelo por mail para que puedas evaluarlo e indicarme que puedo hacer.

1 respuesta

Respuesta
1

H o l a:

Efectivamente es porque el código ya es muy extenso.

Si tienes llamadas a macros y las macros están en el mismo módulo o en el mismo formulario, esas macros las puedes poner en un módulo independiente. De lo contrario habría que revisar qué código lo puedes poner en una nueva macro, en un módulo independiente, y desde la macro principal hacer el llamado a la nueva macro.

H o l a:

Te anexo un ejemplo de cómo tienes que dividir tu macro:

Tienes esto:

Private Sub FinMontaje_Click() ' RUTINA PARA ALMACENAR LAS VARIABLES DE UN MONTAJE EN UN HISTORICO!!!!!!!
 Dim Respuesta As Integer
 Dim Respuesta1 As Integer
Respuesta = MsgBox("Desea finalizar el Montaje en Curso?", vbQuestion + vbYesNo, "Atención!")
If Respuesta = 6 Then
  On Error Resume Next
If NumObra = 1 Then   'OK!!
   Application.ScreenUpdating = False
   Sheets("Historico Montaje").Activate
   Hoja19.Cells(4, 75) = CDate(TextBox36)
   Hoja19.Cells(4, 76) = TextBox56.Text
'se trata de un registro nuevo, se busca la última fila
Set buscorec = Sheets("Historico Montaje2").Range("C:C").Find((CmbNomCorto), LookIn:=xlValues, lookat:=xlWhole)
filx = buscorec.Row
Set buscorec1 = Sheets("Historico Montaje").Range("D:D").Find((CmbNomCorto), LookIn:=xlValues, lookat:=xlWhole)
FILIN = buscorec1.Row
ultobra = Sheets("Historico").Range("A" & Rows.Count).End(xlUp).Row + 1
'paso cada campo de datos TEORICOS
    paso_cada_campo_de_datos_TEORICOS ultobra, filx
'continua la macro

La idea es crear una nueva macro llamada paso_cada_campo_de_datos_TEORICOS

Esa nueva macro quedaría en un nuevo módulo, le pasarías las variables ultobra y filx:

Sub paso_cada_campo_de_datos_TEORICOS(ultobra, filx)
'paso cada campo de datos TEORICOS
Sheets("Historico").Range("A" & ultobra) = Sheets("Historico Montaje2").Range("A" & filx)
Sheets("Historico").Range("B" & ultobra) = Sheets("Historico Montaje2").Range("B" & filx)
Sheets("Historico").Range("C" & ultobra) = Sheets("Historico Montaje2").Range("C" & filx)
Sheets("Historico").Range("D" & ultobra) = Sheets("Historico Montaje2").Range("D" & filx)
Sheets("Historico").Range("E" & ultobra) = Sheets("Historico Montaje2").Range("E" & filx)
Sheets("Historico").Range("F" & ultobra) = Sheets("Historico Montaje2").Range("F" & filx)
Sheets("Historico").Range("G" & ultobra) = Sheets("Historico Montaje2").Range("G" & filx)
Sheets("Historico").Range("H" & ultobra) = Sheets("Historico Montaje2").Range("H" & filx)
Sheets("Historico").Range("I" & ultobra) = Sheets("Historico Montaje2").Range("I" & filx)
Sheets("Historico").Range("J" & ultobra) = Sheets("Historico Montaje2").Range("J" & filx)
Sheets("Historico").Range("K" & ultobra) = Sheets("Historico Montaje2").Range("K" & filx)
Sheets("Historico").Range("L" & ultobra) = Sheets("Historico Montaje2").Range("L" & filx)
Sheets("Historico").Range("M" & ultobra) = Sheets("Historico Montaje2").Range("M" & filx)
Sheets("Historico").Range("N" & ultobra) = Sheets("Historico Montaje2").Range("N" & filx)
Sheets("Historico").Range("O" & ultobra) = Sheets("Historico Montaje2").Range("O" & filx)
Sheets("Historico").Range("P" & ultobra) = Sheets("Historico Montaje2").Range("P" & filx)
Sheets("Historico").Range("Q" & ultobra) = Sheets("Historico Montaje2").Range("Q" & filx)
Sheets("Historico").Range("R" & ultobra) = Sheets("Historico Montaje2").Range("R" & filx)
Sheets("Historico").Range("S" & ultobra) = Sheets("Historico Montaje2").Range("S" & filx)
Sheets("Historico").Range("T" & ultobra) = Sheets("Historico Montaje2").Range("T" & filx)
Sheets("Historico").Range("U" & ultobra) = Sheets("Historico Montaje2").Range("U" & filx)
Sheets("Historico").Range("V" & ultobra) = Sheets("Historico Montaje2").Range("V" & filx)
Sheets("Historico").Range("W" & ultobra) = Sheets("Historico Montaje2").Range("W" & filx)
Sheets("Historico").Range("X" & ultobra) = Sheets("Historico Montaje2").Range("X" & filx)
Sheets("Historico").Range("Y" & ultobra) = Sheets("Historico Montaje2").Range("Y" & filx)
Sheets("Historico").Range("Z" & ultobra) = Sheets("Historico Montaje2").Range("Z" & filx)
Sheets("Historico").Range("AA" & ultobra) = Sheets("Historico Montaje2").Range("AA" & filx)
Sheets("Historico").Range("AB" & ultobra) = Sheets("Historico Montaje2").Range("AB" & filx)
Sheets("Historico").Range("AC" & ultobra) = Sheets("Historico Montaje2").Range("AC" & filx)
Sheets("Historico").Range("AD" & ultobra) = Sheets("Historico Montaje2").Range("AD" & filx)
Sheets("Historico").Range("AE" & ultobra) = Sheets("Historico Montaje2").Range("AE" & filx)
Sheets("Historico").Range("AF" & ultobra) = Sheets("Historico Montaje2").Range("AF" & filx)
Sheets("Historico").Range("AG" & ultobra) = Sheets("Historico Montaje2").Range("AG" & filx)
Sheets("Historico").Range("AH" & ultobra) = Sheets("Historico Montaje2").Range("AH" & filx)
End Sub

Este procedimiento lo tienes que repetir con otras secciones de tu código.

S a l u d o s

Excelente!

Muchas gracias!

Me quedo solo una duda.....cuando desde el código llamo a la Subrutina, no debo anteponer la palabra Call ........ y las variables entre paréntesis?, es decir:

Call paso_cada_campo_de_datos_TEÓRICOS (ultobra, filx)

Así estaba acostumbrado a llamarlas pero.....

Pueden ser de las 2 opciones

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas