DO while con dos Loop condicionados.

Necesito que si en medio de un DO while se genera una condición especifica, el programa no continue y retorne al inicio del do while.

Ej:

Do while valorcelda> 0

resultado =valorcelda *x

if resultado= 100 then

realiza una serie de operaciones

else

Quiero que aquí pase al siguiente por y vaya al inicio del do while

endif

Aqui realiza otra serie de operaciones que no quiero que haga si reultado <>100

x=x+1

Loop

Respuesta
1

Sugiero, solo para estar seguros, que vuelvas a explicar el problema (sin mencionar Do While u otro) y así poder brindarte una ayuda exacta a tu problema. No olvides que tú lo lees y lo entiendes pues lo tienes al frente y en la cabeza, desde este lado de la pantalla no es tan fácil entendelro

Salu2

Abraham Valencia

2 respuestas más de otros expertos

Respuesta
2

Si las operaciones se tienen que ejecutar cuando el resultado es igual a 100

Y la x siempre aumenta sin importar si es igual a 100 o diferente de 100, entonces el "Else" ya no es necesario. Quedaría así:

    Do While valorcelda > 0
        resultado = valorcelda * x
        If resultado = 100 Then
            'realiza una serie de operaciones
            '
            'Aqui realiza otra serie de operaciones que no quiero que haga si reultado <>100
            'Estas operaciones se ejecutarán si resultado = 100
        End If
        x = x + 1
    Loop

Sal u dos

Respuesta
1

Lo que pides es sencillo si bien lo entendí esta es la macro que ocupas aunque debo mencionar que un ciclo do while es muy lento y poco eficiente yo sugeriría que uses un for i to... next

Te explico un poco la macro cuando los resultados sean diferentes a 100 la macro se moverá a la siguiente fila y leerá su valor para regresar al inicio del do while, la instrucción goto siguiente le indica a la macro que se salte las instrucciones que no quieres que se ejecuten cuando el resultado sea diferente de 100

Sub inserta()
valorcelda = Range("a1")
X = 5
Do While valorcelda > 0
    resultado = valorcelda * X
     If resultado = 100 Then
     'ejecuta operaciones cuando resultado=100
    Else
     'ejecuta operaciones cuando resultado><100
        ActiveCell.Offset(1, 0).Activate
        valorcelda = ActiveCell
        GoTo siguiente
    End If
Loop
siguiente:
X = X + 1
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas