Public Function LetraNIF(dni As Long) As String Dim tmp As Long tmp = dni - (Int(dni /23) * 23) Select Case tmp Case 0, 23: LetraNIF = "T" Case 1: LetraNIF = "R" Case 2: LetraNIF = "W" Case 3: LetraNIF = "A" Case 4: LetraNIF = "G" Case 5: LetraNIF = "M" Case 6: LetraNIF = "Y" Case 7: LetraNIF = "F" Case 8: LetraNIF = "P" Case 9: LetraNIF = "D" Case 10: LetraNIF = "X" Case 11: LetraNIF = "B" Case 12: LetraNIF = "N" Case 13: LetraNIF = "J" Case 14: LetraNIF = "Z" Case 15: LetraNIF = "S" Case 16: LetraNIF = "Q" Case 17: LetraNIF = "V" Case 18: LetraNIF = "H" Case 19: LetraNIF = "L" Case 20: LetraNIF = "C" Case 21: LetraNIF = "K" Case 22: LetraNIF = "E" Case Else: LetraNIF = "Error" End Select End Function Así, si en un formulario tienes un campo DNI, en otro cuadro de texto, Letra, en su origen del control puedes poner =LetraNif([DNI]) O bien, en el evento Después de actualizar del cuadro de texto DNI puedes poner Letra=letranif([dni])