Excel - Problema de control de Macro

 
Vista:

Problema de control de Macro

Publicado por Cesar (6 intervenciones) el 23/01/2009 22:46:26
Hola a todos.

La verdad no sé si el título de mi problema está correctamente puesto, pero no se me ocurrió otro. En fin, mi problema es el siguiente:

(Lo describiré de manera muy abstracta, porque si coloco el código verdadero nadie me va a enteder, además que es muuuy largo y con muchas funciones y procedimientos.)

Por ejemplo tengo lo siguiente:

For i = 1 to 100000000

For j = 1 to 20000000

a = funcionX ( parametro1 , parametro2 , parametro3)

End j

End i

Supongamos que todas las variables están correctamente definidas y que existe una funcion llamada funcionX que está correctamente escrita y que recibe algunos parámetros definidos de antemano cuyos valores son aleatoreos. Sin embargo esta funcionX hace algunos cálculos matemáticos (invierte matrices entre otras cosas) Como los parámetros que le entrego son aleatoreos puede que se genere una matriz singular (no invertible) entonces la funcionX no puede entregar resultados y se queda "pegada" y las iteraciones no siguen avanzando (vale decir, " i " y " j " llegaron a un cierto valor cada uno y no se terminó el For por completo).

Ahora viene mi pregunta: ¿Cómo puedo hacer, si existe un error parecido al que acabo de explicar, para que las iteraciones sigan adelante hasta terminar por completo ambos For?
No importa que no entregue los valores para el caso en que la matriz sea no invertible, pero la idea es que en la siguiente iteración me entregue resultados si esque existen.

La idea es que no aparezca en la pantalla de VB la típica reseña que indica "error xx en tiempo de ejecución, división por cero" u otra similar y que se detenga el procedimiento.

Ya que debo realizar miles de iteraciones que demoran días de procesamiento mi idea es dejar un computador funcionando por ese tiempo y yo no preocuparme por problemas de este estilo y poder irme de vacaciones tranquilo y a la vuelta retomar los resultados.

En verdad no tengo muchos conocimientos al respecto, así que si alguien me puede ayudar se lo agradecería.

Espero haber sido lo suficientemente claro, Gracias

César.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema de control de Macro

Publicado por Cesar (2 intervenciones) el 24/01/2009 00:41:56
Haz usado manejadores de error???
Tipo on error resume next???
o on error go to

Ese error tipico de division por cero se puede solucionar con eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

RE:Problema de control de Macro

Publicado por JuanC (1237 intervenciones) el 25/01/2009 11:54:03
Sub test()
Dim i&, j&
Dim r#

For i = 0 To 100
For j = 0 To 100
r = f(Rnd * 10, Rnd * 10)
Next j
Next i
End Sub

Function f(a As Integer, b As Integer)
'If b = 0 Then Exit Function
On Error Resume Next
f = a / b
End Function

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar