Hola Francisco,
Aquí tienes una posible solución, la adapté hace tiempo de una web y me ha funcionado bién.
En este caso teng un formulario de chequeo de letras de NIF, con solo un boton [btnPrueba] y un textbox [textBoxNif], al final te muestra un mensaje de si es verdadero o falso. Personalizatelo a tu gusto ;-)
Private Sub btnPrueba_Click()
Dim VREAL As Long, VENTERO As Long, Letra As String, nifAcomprobar As String, resultado As Boolean
nifAcomprobar = textBoxNif
If Len(Trim(nifAcomprobar)) <> 9 Then
resultado = False
Else
Letra = UCase(Right(nifAcomprobar, 1))
If Letra >= "A" And Letra <= "Z" Then
VREAL = Val(nifAcomprobar)
VENTERO = VREAL - ((Fix(VREAL / 23)) * 23) + 1
Select Case VENTERO
Case 1, 24
If Letra = "T" Then
resultado = True
Else
resultado = False
End If
Case 2
If Letra = "R" Then
resultado = True
Else
resultado = False
End If
Case 3
If Letra = "W" Then
resultado = True
Else
resultado = False
End If
Case 4
If Letra = "A" Then
resultado = True
Else
resultado = False
End If
Case 5
If Letra = "G" Then
resultado = True
Else
resultado = False
End If
Case 6
If Letra = "M" Then
resultado = True
Else
resultado = False
End If
Case 7
If Letra = "Y" Then
resultado = True
Else
resultado = False
End If
Case 8
If Letra = "F" Then
resultado = True
Else
resultado = False
End If
Case 9
If Letra = "P" Then
resultado = True
Else
resultado = False
End If
Case 10
If Letra = "D" Then
resultado = True
Else
resultado = False
End If
Case 11
If Letra = "X" Then
resultado = True
Else
resultado = False
End If
Case 12
If Letra = "B" Then
resultado = True
Else
resultado = False
End If
Case 13
If Letra = "N" Then
resultado = True
Else
resultado = False
End If
Case 14
If Letra = "J" Then
resultado = True
Else
resultado = False
End If
Case 15
If Letra = "Z" Then
resultado = True
Else
resultado = False
End If
Case 16
If Letra = "S" Then
resultado = True
Else
resultado = False
End If
Case 17
If Letra = "Q" Then
resultado = True
Else
resultado = False
End If
Case 18
If Letra = "V" Then
resultado = True
Else
resultado = False
End If
Case 19
If Letra = "H" Then
resultado = True
Else
resultado = False
End If
Case 20
If Letra = "L" Then
resultado = True
Else
resultado = False
End If
Case 21
If Letra = "C" Then
resultado = True
Else
resultado = False
End If
Case 22
If Letra = "K" Then
resultado = True
Else
resultado = False
End If
Case 23
If Letra = "E" Then
resultado = True
Else
resultado = False
End If
End Select
Else
resultado = False
End If
End If
MsgBox resultado
End Sub
espero que te sirva,
salu2 desde BCN!
isaakote!