ESTE ES EL CODIGO DEL SICLO QUE NECESITO (ciclo infinito)
la variable conta esta declara como integer
conta = conta + 1
If conta = 1 Then
Label2.ForeColor = vbYellow
Image1.Visible = False
Image2.Visible = False
Image3.Visible = False
Image4.Visible = False
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
End If
If conta = 5 Then
Label2.ForeColor = vbRed
Image1.Visible = True
Image2.Visible = False
Image3.Visible = False
Image4.Visible = False
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
End If
If conta = 10 Then
Label2.ForeColor = vbYellow
Image1.Visible = False
Image2.Visible = True
Image3.Visible = False
Image4.Visible = False
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
End If
If conta = 15 Then
Label2.ForeColor = vbRed
Image1.Visible = False
Image2.Visible = False
Image3.Visible = True
Image4.Visible = False
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
End If
If conta = 20 Then
Label2.ForeColor = vbYellow
Image1.Visible = False
Image2.Visible = False
Image3.Visible = False
Image4.Visible = True
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
End If
If conta = 25 Then
Label2.ForeColor = vbRed
Image1.Visible = False
Image2.Visible = False
Image3.Visible = False
Image4.Visible = False
Image5.Visible = True
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
end if
nesesito un ciclo qe cuando llegue al ultimo if vuelva al primero y siga infinitamente..............
conta = conta + 1
If conta = 1 Then
Label2.ForeColor = vbYellow
Image1.Visible = False
Image2.Visible = False
Image3.Visible = False
Image4.Visible = False
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
End If
If conta = 5 Then
Label2.ForeColor = vbRed
Image1.Visible = True
Image2.Visible = False
Image3.Visible = False
Image4.Visible = False
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
End If
If conta = 10 Then
Label2.ForeColor = vbYellow
Image1.Visible = False
Image2.Visible = True
Image3.Visible = False
Image4.Visible = False
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
End If
If conta = 15 Then
Label2.ForeColor = vbRed
Image1.Visible = False
Image2.Visible = False
Image3.Visible = True
Image4.Visible = False
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
End If
If conta = 20 Then
Label2.ForeColor = vbYellow
Image1.Visible = False
Image2.Visible = False
Image3.Visible = False
Image4.Visible = True
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
End If
If conta = 25 Then
Label2.ForeColor = vbRed
Image1.Visible = False
Image2.Visible = False
Image3.Visible = False
Image4.Visible = False
Image5.Visible = True
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
end if
nesesito un ciclo qe cuando llegue al ultimo if vuelva al primero y siga infinitamente..............
Pues tal y como te han indicado en varias ocasiones a través del foro, lo que debes hacer es inicializar ese contador a cero, para que vuelva a empezar.
Esto es:
al principio del código, antes de CONTA=CONTA+1 pones esta línea:
IF CODIGO=30 THEN CODIGO=0
y ya está.
Ahora paso a las críticas, jaja:
el método que estás usando es un poco inusual, deberías usar un array de images, y el código se te quedaría en unas pocas líneas, menos de diez. Otro tema que deberías modificar es el siguiente: usas el contador saltando de cinco en cinco, que no digo que falle, pero lo correcto sería usarlo de uno en uno y poner el inervalo algo mayor (a no ser que necesites ese salto de cinco).
Si quieres otra solución te pongo úna manera de usar las comparaciones como valores:
conta = conta + 1
conta2 = int ( conta / 5 )
if conta2 / 2 = int ( conta2 / 2 ) then Label2.ForeColor = vbYellow
else
Label2.ForeColor = vbred
endif
Image1.Visible = (conta2=2)
Image2.Visible = (conta2=3)
Image3.Visible = (conta2=4)
Image4.Visible = (conta2=5)
Image5.Visible = (conta2=6)
No trato image6, 7 , 8, y 9 porque veo que tu código no las trata.
Con estas líneas haces lo mismo que antes, pero mucho más resumido.
Si te fijas, la comparación ( conta2 = 3 ) será verdadero cuando conta2 valga 3, caso contrario es falso. De esa manera ahorras mucho código, que de cara a futuras modificaciones verás que es muy útil.
Saludos
Esto es:
al principio del código, antes de CONTA=CONTA+1 pones esta línea:
IF CODIGO=30 THEN CODIGO=0
y ya está.
Ahora paso a las críticas, jaja:
el método que estás usando es un poco inusual, deberías usar un array de images, y el código se te quedaría en unas pocas líneas, menos de diez. Otro tema que deberías modificar es el siguiente: usas el contador saltando de cinco en cinco, que no digo que falle, pero lo correcto sería usarlo de uno en uno y poner el inervalo algo mayor (a no ser que necesites ese salto de cinco).
Si quieres otra solución te pongo úna manera de usar las comparaciones como valores:
conta = conta + 1
conta2 = int ( conta / 5 )
if conta2 / 2 = int ( conta2 / 2 ) then Label2.ForeColor = vbYellow
else
Label2.ForeColor = vbred
endif
Image1.Visible = (conta2=2)
Image2.Visible = (conta2=3)
Image3.Visible = (conta2=4)
Image4.Visible = (conta2=5)
Image5.Visible = (conta2=6)
No trato image6, 7 , 8, y 9 porque veo que tu código no las trata.
Con estas líneas haces lo mismo que antes, pero mucho más resumido.
Si te fijas, la comparación ( conta2 = 3 ) será verdadero cuando conta2 valga 3, caso contrario es falso. De esa manera ahorras mucho código, que de cara a futuras modificaciones verás que es muy útil.
Saludos
Bueno, voy a aportar mi granito de arena para mejorar
un poco ese código.
La instrucción
conta2 = int ( conta / 5 )
Puede escribirse así:
conta2 = conta 5
Usando el operador de división de entero .
También , se puede mejorar esta instrucción:
if conta2 / 2 = int ( conta2 / 2 ) then ...
Ya que eso es equivalente a esto otro:
if (conta2 mod 2) = 0 then ...
un poco ese código.
La instrucción
conta2 = int ( conta / 5 )
Puede escribirse así:
conta2 = conta 5
Usando el operador de división de entero .
También , se puede mejorar esta instrucción:
if conta2 / 2 = int ( conta2 / 2 ) then ...
Ya que eso es equivalente a esto otro:
if (conta2 mod 2) = 0 then ...
