Private Sub Check1_Click()
If nro_nousado = Fase Then
nro_nousadoFase = True
End If
If nro_nousado = True Then
nro_nousadoFase = False
End If
End Sub
Bueno, Nocturno te ha pasado la mejor opcion.
Y yo te voy a explicar por que no te funcionaba:
Supongamos que inicializas nro_nousadoFase a False, ¿bien?
Ahora presionas el checkbox y se ejecuta:
If nro_nousado = False Then
nro_nousadoFase = True
End If
Esto es lo mismo que preguntar: ¿nro_nousado es Falso? Como dije que habiamos inicializado nro_nousadoFase = False, la condicion se cumple, por lo que ahora, nro_nousadoFase = True.
Luego de esto, se ejecuta el siguiente codigo:
If nro_nousado = True Then
nro_nousadoFase = False
End If
Como nro_nousadoFase ahora valia True, la condicion se vuelve a cumplir, dando como resultado nro_nousadoFase = False.
Supongamos que inicializas nro_nousadoFase a True, ¿bien?
Ahora presionas el checkbox y se ejecuta:
If nro_nousado = False Then
nro_nousadoFase = True
End If
Esto es lo mismo que preguntar: ¿nro_nousado es Falso? Como dije que habiamos inicializado nro_nousadoFase = True, la condicion NO se cumple, por lo que nro_nousadoFase sigue valiendo True.
Luego de esto, se ejecuta el siguiente codigo:
If nro_nousado = True Then
nro_nousadoFase = False
End If
Como nro_nousadoFase vale True, la condicion se cumple, dando como resultado nro_nousadoFase = False.
Resumiendo: El comportamiento del programa que hiciste es este:
Si nro_nousadoFase ingresa valiendo True, luego de salir del algoritmo, nro_nousadoFase = False. Hasta aqui bien.
Si nro_nousadoFase ingresa valiendo False, luego de salir del algoritmo, nro_nousadoFase = False. Y aqui es donde no se invierte mas...y esta el error.
Podrias haber hecho:
Private Sub Check1_Click()
If nro_nousado = Fase Then
nro_nousadoFase = True
else
nro_nousadoFase = False
End If
End Sub
Y hubiese funcionado tal cual te ha puesto el ejemplo Nocturno.
O bien:
Private Sub Check1_Click()
If nro_nousado = Fase Then
nro_nousadoFase = True
exit sub
End If
If nro_nousado = True Then
nro_nousadoFase = False
End If
End Sub
tambien hubiese funcionado. Son 2 alternativas, aunque lo que te dijo Nocturno es lo que yo siempre hago y es la mejor solucion.
Saludos.