Buenas erbuson! Muchas grácias por toda la info!! He estado probando tanto lo que me has puesto como lo que tenia yo. La cosa es que al profesor nose si le gustara que me avance más que mis compañeros de clase (no es ni muy simpatico ni muy razonable este profesor..)
En caso de querer hacerlo más básico, como lo ves de la siguiente manera?
Código vb:
Ver originalSub socis2()
Dim NS, N1, N2, acumulador, x, codicontrol, xifra As Integer
Dim N3, lletra, resposta1, resposta2 As String
If NS >= 1001 Then
MsgBox ("Vuelve a iniciar el programa e introduce un número superior a 1001")
Exit Sub
End If
Do
resposta1 = InputBox("Eres cliente del banco? (S/N):")
If resposta1 = "N" Or resposta1 = "n" Then
Range("F2").Value = ""
Range("F3").Value = ""
Range("I2").Value = ""
Range("I3").Value = ""
Exit Sub
End If
Do
resposta2 = InputBox("Quieres salir del programa? (S/N):")
If resposta2 = "S" Or resposta2 = "s" Then
Range("F2").Value = ""
Range("F3").Value = ""
Range("I2").Value = ""
Range("I3").Value = ""
Exit Sub
End If
NS = Range("F2").Value
N3 = Range("I2").Value
N1 = Int(NS / 100)
N2 = NS - (N1 * 100)
acumulador = 0
For x = 1 To N2 Step 1
acumulador = acumulador + x
Next
N2 = acumulador * N1 * 13411
codicontrol = (N2 / 9 - Int(N2 / 9)) * 9
xifra = (N2 / 31 - Int(N2 / 31)) * 31
If xifra < 10 Then
lletra = "A"
ElseIf xifra >= 10 Or xifra < 19 Then
lletra = "B"
Else
lletra = "C"
End If
Range("F3").Value = NS & Int(codicontrol) & lletra
If N3 = Int(codicontrol) & lletra Then
Range("I3").Value = "Correcto"
Else
Range("I3").Value = "Incorrecto"
End If
Loop While resposta = "N" Or resposta = "n"
Loop While resposta = "S" Or resposta = "s"
End Sub
Se puede mejorar más aún de forma sencilla? (aunque sea de forma limitada).
Cómo podria hacerlo para que al apretar el botón no me borre los datos obtenidos, más que nada para que pudiera existir la posibilidad de: mi programa a realizado todo correctamente, miro mis resultados, quiero introducir un nuevo código, borrame los datos antiguos y ahora introduzco un nuevo número. Más que nada por question de "limpieza" de que cada vez que inicio el programa me borre lo que haya para introducir unos nuevos, pero al hacerlo me lo borra todo siempre y nose donde colocar los: Range("F2").Value = "" .
PD: Estoy aprendiendo más contigo que con el profesor que tengo. Muchas grácias por tu tiempo :D.