Buenas erbuson, mira, despues de pensarlo un poco, la cosa quedaria asi no?
Código vb:
Ver originalSub socis2()
Dim NS, N1, N2, acumulador, x, codicontrol, xifra As Integer
Dim N3, lletra As String
NS = Range("F2").Value
N3 = Range("H2").Value
If NS < 1001 Then
MsgBox ("Introduce un número superior a 1001")
End If
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("H3").Value = "Correcto"
Else
Range("H3").Value = "Incorrecto"
End If
End Sub
En caso de que fuera correcto, que más podria añadirle para que estubiera más a prueba de fallos?
Cada vez me animo más con el tema :D, haber que puedo añadir :P
Grácias :D