Código de Visual Basic - Calcula la letra de un DNI

Versión 1.1
estrellaestrellaestrellaestrellaestrella(9)

Actualizado el 8 de Septiembre del 2015 (Publicado el 11 de Febrero del 2002)gráfica de visualizaciones de la versión: Versión 1.1
35.777 visualizaciones desde el 11 de Febrero del 2002
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Tiene que recibir la cadena con los números del DNI.
Ejemplo:
1
2
3
Private Sub Command1_Click()
MsgBox Calcular(Text1.Text)
End Sub

Se han aplicado las modificaciones indicadas por GiGaHeRz!!!
1
2
3
4
5
6
7
8
9
10
11
12
Function Calcular(Num As String)
    Dim Tabla()
    Dim Result As Currency
    If Len(Num) < 7 Or Len(Num) > 8 Then
        MsgBox "ERROR : el DNI debe de tener 7 o 8 números"
        Exit Function
    End If
    Result = ((Int(Num / 23)) * 23)
    Result = -Result + Num
    Tabla = Array("-T", "-R", "-W", "-A", "-G", "-M", "-Y", "-F", "-P", "-D", "-X", "-B", "-N", "-J", "-Z", "-S", "-Q", "-V", "-H", "-L", "-C", "-K", "-E")
    Calcular = Num & Tabla(Result)
End Function



Comentarios sobre la versión: Versión 1.1 (9)

Manuel
12 de Febrero del 2002
estrellaestrellaestrellaestrellaestrella
Un millon de gracias por tu fastuoso programa, quiero decirte que gracias a tu validación de DNI, me han contratado en una empresa puntera en el sector de informática. Te debo mi futuro profesional con tu NEW program.
Responder
David Delgado Ruiz
12 de Marzo del 2002
estrellaestrellaestrellaestrellaestrella
Falta una linea de código, la variable 'numero' no esta inicializada, creo recordar que es el resultado de la suma de todos los dígitos del DNI.
Responder
yohonny guido
26 de Marzo del 2002
estrellaestrellaestrellaestrellaestrella
podria hacer una aplicacion respesto a este programa, compremido

si podria,
Responder
GiGaHeRz
16 de Marzo del 2003
estrellaestrellaestrellaestrellaestrella
Este codigo esta mal. Tiene un par de errores.

estas 2 lineas:
Result = ((Int(numero / 23)) * 23)
Result = -Result + numero

deberian ser:
Result = ((Int(Num / 23)) * 23)
Result = -Result + Num

aunque se podrian resumir como:
Result = Num mod 23
Responder
Ricardo
7 de Septiembre del 2015
estrellaestrellaestrellaestrellaestrella
Hola. Muchas gracias por la aportación que has hecho. Solo decirte que el compañero GIGAHeRz tiene toda la razón, hay que cambiar las dos lineas esas, porque si no, sale otro valor y el resultado no es el esperado. Gracias.
Responder
Imágen de perfil
15 de Septiembre del 2015
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder
jesus
2 de Septiembre del 2016
estrellaestrellaestrellaestrellaestrella
Muy buen trabajo, gracias por tu ayuda
Responder
Moises
16 de Marzo del 2020
estrellaestrellaestrellaestrellaestrella
Function Calcular(txtDni As String)
Dim tabla As String
Dim result As
Dim numeros As String

If Len(txtDni) < 7 Or Len(txtDni) > 8 Then
MsgBox("El numero del Dni debe de tener 7 u 8 digitos.", MsgBoxStyle.Exclamation)
Exit Function
End If

result = CInt((Int(Val(txtDni) / 23) * 23))
result = -result + Val(txtDni)
MsgBox(result)

Calcular = result

tabla = ("T,R,W,A,G,M,Y,F,P,D,X,B,N,J,Z,S,Q,V,H,L,C,K,E")
numeros = ("0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23")


Return tabla(result)

y no me funcion no se porque solo me sale la letra A. y no me sale lo de Result as Currency?. Un saludo.
Responder
moises
16 de Marzo del 2020
estrellaestrellaestrellaestrellaestrella
Cuando pones tabla = Array (....)
dimenisonas el array
Responder

Comentar la versión: Versión 1.1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s78