La Web del Programador: Comunidad de Programadores
 
    Pregunta:  59156 - RFC
Autor:  Ariana Solis Sarabia
Como realizar un programa en donde el usuario introduzca su Registro Federal de Contribuyentes y le digamos si es correcto o no, tomando en cuenta que los cuatro primeros digitos deben ser letras, los siguientes seis son numeros y los tres ultimos son mixtos(letras y numeros) ya que el numero de digitos del RFC son 13.

  Respuesta:  Fernando Fumero
'**********************************************************************************************
'* atte: Fernando Fumero | [email protected] | http://www.luzyfer666.es.tl/
'**********************************************************************************************

Private Sub Command1_Click()
MsgBox IsRFC(Text1)
End Sub

Friend Function IsRFC(X_RFC As String) As String
'ABCD123456ABC

Dim I As Integer
IsRFC = "Correcto"


' Revisamos el largo, solo de 13 caracteres será admitido
If Len(X_RFC) <> 13 Then IsRFC = "Largo incorrecto, solo pueden ser 13 caracteres.": Exit Function


' Revisamos que no existan números en los 4 primeros caracteres
For I = 1 To 4
If IsNumeric(Mid(X_RFC, I, 1)) Then IsRFC = "Los 4 primeros caracteres tienen que ser letras, no números.": Exit Function
Next I


' Revisamos que solo sean números en los 6 caracteres siguientes
For I = 5 To 10
If Not IsNumeric(Mid(X_RFC, I, 1)) Then IsRFC = "Los caracteres del 5 al 10 tienen que ser números, no letras.": Exit Function
Next I
End Function

'**********************************************************************************************
'* atte: Fernando Fumero | [email protected] | http://www.luzyfer666.es.tl/
'**********************************************************************************************