DO LOOP
'macro a repetir
Until/while = condicion a repetir
Lo que yo quisiera hacer es esto:
DO LOOP
'macro a repetir
Until/while = condicion a repetir or/and condicion a repetir
por ejemplo quiero mejorar una macro del manual de mauricio:
Código: Seleccionar todo
Sub Matrices_Matrices2
Dim mDatos(3) As Variant
Dim mTmp As Variant
Dim co1 As Integer
Dim sCaracter As String
Dim sContra As String
Dim mTmp2 As integer 'modificacion solicitada por el manual
'Llenamos los datos, observa como tenemos cuatro grupos, letras minúsculas, letras mayúsculas, números y caracteres especiales
mDatos(0) = Array( "a", "b" ,"c" ,"d" ,"e" ,"f" ,"g" ,"h" ,"i" ,"j" ,"k" ,"l" ,"m","n","ñ","o","p","k","r","s","t","u","v","w","x","y","z")
mDatos(1) = Array( "A" ,"B" ,"C" ,"D" ,"E" ,"F" ,"G" ,"H" ,"I" ,"J" ,"K" ,"L" ,"M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z")
mDatos(2) = Array("1","2","3","4","5","6","7","8","9","0")
mDatos(3) = Array( "\" ,"|" ,"!" ,"·" ,"$" ,"%" ,"&" ,"/" ,"(" ,")" ,"=" ,"?" ,"¿","¡","+","-","_",".",":",",",";","<",">","}","{","]","[")
'Modificacion solicitada por el manual
DO
mTmp2 = InputBox( "Seleccione por favor de ¿cuantos caracteres quieres la contraseña? entre 5 y 50 caracteres"
LOOP WHILE mTmp2 < 5
'Nuestra contraseña sera de 10 caracteres
For co1 = 1 To mTmp2
'Seleccionamos aleatoriamente, UNO de los cuatro grupos
mTmp = mDatos( CInt( Rnd() * 3 ) )
'Seleccionamos aleatoriamente, UN elemento del grupo, observa como usamos la función Rnd y la multiplicamos por el índice superior del grupo seleccionado
sCaracter = mTmp( CInt( Rnd() * UBound(mTmp) ) )
'Vamos juntando los caracteres de la contraseña
sContra = sContra & sCaracter
Next
'Mostramos la contraseña
MsgBox "Tu contraseña es: " & sContra
InputBox( "Copia de contraseña", "COPIAR", sContra )
End Sub
Código: Seleccionar todo
LOOP WHILE mTmp2 < 5
Código: Seleccionar todo
LOOP WHILE mTmp2 < 5 OR mTmp2 > 50
Código: Seleccionar todo
LOOP WHILE mTmp2 < 5 OR mTmp2 > 50