Introducir un retardo en una macro

14/02/2007 - 12:08 por rgg27 | Informe spam
Necesito ralentizar una macro para que el proceso se vea lentamente.
No se trata de introducir un retardo en la ejecución y que luego se
procese rapidamente, sino de que se vea lentamente todo el proceso.
La macro es:
Sub Calcula_Bruto_Garantizado()

Dim inferior As Double
Dim coeficiente As Double
Dim superior As Double

inferior = -10000
coeficiente = 0
superior = 10000

Range("R16").Value = coeficiente

Do While (Abs(Range("R14").Value) >= 0.001)
If Range("R14").Value > 0 Then
superior = coeficiente
coeficiente = (coeficiente + inferior) / 2
Else
inferior = coeficiente
coeficiente = (coeficiente + superior) / 2
End If
Range("R16").Value = coeficiente
Loop
End Sub

Preguntas similare

Leer las respuestas

#1 rgg27
14/02/2007 - 15:17 | Informe spam
No acabo de ver bien como enlazar un códogo con otro.
Perdona, pero mis conocimientos de VBA no son muy altos.
He probado de varias formas, pero el código SLEEP(1,0) parece que no
me lo admite así sin más.
Si podríais concretarme un poco más os lo agradecería.
Respuesta Responder a este mensaje
#2 L. Garcia
14/02/2007 - 16:09 | Informe spam
Hola:

Error mio, se me ha escapado el dedo cuando he respondido.

La llamada tiene que ser SLEEP(2) para dos segundos, por ejemplo.

Y para ponerlo en tu codigo, pues lo de antes, lo pones despues del Do...

Do While...
Call SLEEP(1)
...
Loop

Saludos

escribió en el mensaje
news:
No acabo de ver bien como enlazar un códogo con otro.
Perdona, pero mis conocimientos de VBA no son muy altos.
He probado de varias formas, pero el código SLEEP(1,0) parece que no
me lo admite así sin más.
Si podríais concretarme un poco más os lo agradecería.
Respuesta Responder a este mensaje
#3 rgg27
15/02/2007 - 11:02 | Informe spam
Gracias L. García.

Al final lo he solucionado intercalando:
i = 0
While i < 1000000
i = i + 1
Wend

Quedando definitivamente:

Sub Calcula_Bruto_Garantizado()
'
Dim inferior As Double
Dim coeficiente As Double
Dim superior As Double

inferior = -10000
coeficiente = 0
superior = 10000
'
Range("R16").Value = coeficiente
'
Do While (Abs(Range("R14").Value) >= 0.001)
'
' Retardo ajustable
i = 0
While i < 1000000
i = i + 1
Wend
' Fin de retardo

If Range("R14").Value > 0 Then
superior = coeficiente
coeficiente = (coeficiente + inferior) / 2
Else
inferior = coeficiente
coeficiente = (coeficiente + superior) / 2
End If
Range("R16").Value = coeficiente
Loop
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida