VALIDAR CPF NO VB.NET
Boa tarde galera!!!!!
Alguem poderia me indicar uma rotina para validar o CPF no vb.net.
Desde já Agradeço!!!!!!
Alguem poderia me indicar uma rotina para validar o CPF no vb.net.
Desde já Agradeço!!!!!!
http://www.macoratti.net/vbn_vdoc.htm
Criei o exemplo abaixo para você: Esse além de verificar o CPF, criei o envento Keypress que ao digitar ele vai assumindo o formato de CPF.
E só criar um textbox com nome [Ô]txtCPF[Ô], um botão com nome [Ô]btnVerificar[Ô] e copiar o código para o form.
Public Sub ApenasNrs(ByRef KeyAsc As Integer)
Select Case KeyAsc
[ô]Se a tecla for numérica (0 - 9) ,backspace (8) ou hifen(-)
Case asc([Ô]0[Ô]) To asc([Ô]9[Ô]), 8, asc([Ô]-[Ô])
Case Else
Beep() [ô]Som de erro, nao é necessário
KeyAsc = 0 [ô]Cancela a entrada
End Select
End Sub
Public Function isCPF(ByVal CPF As String) As Boolean
Dim conta As Integer, soma As Integer, resto As Integer, Passo As Integer
isCPF = False
CPF = Trim(CPF)
CPF = Replace(CPF, [Ô].[Ô], [Ô][Ô])
CPF = Replace(CPF, [Ô]-[Ô], [Ô][Ô])
If Len(CPF) <> 11 Then
Exit Function
End If
For Passo = 11 To 12
soma = 0
For conta = 1 To Passo - 2
soma = soma + Val(Mid(CPF, conta, 1)) * (Passo - conta)
Next
resto = 11 - (soma - (Int(soma / 11) * 11))
If resto = 10 Or resto = 11 Then resto = 0
If resto <> Val(Mid(CPF, Passo - 1, 1)) Then
Exit Function
End If
Next
isCPF = True
End Function
Private Sub btnVerificar_Click(sender As Object, e As EventArgs) Handles btnVerificar.Click
If txtCPF.Text = [Ô]000.000.000-00[Ô] Or txtCPF.Text = [Ô]111.111.111-11[Ô] Or txtCPF.Text = [Ô]222.222.222-22[Ô] Or txtCPF.Text = [Ô]333.333.333-33[Ô] Or txtCPF.Text = [Ô]444.444.444-44[Ô] Or txtCPF.Text = [Ô]555.555.555-55[Ô] Or txtCPF.Text = [Ô]666.666.666-66[Ô] Or txtCPF.Text = [Ô]777.777.777-77[Ô] Or txtCPF.Text = [Ô]888.888.888-88[Ô] Or txtCPF.Text = [Ô]999.999.999-99[Ô] Then : MsgBox([Ô][Ô][Ô]CPF[Ô][Ô] Inválido[Ô], vbCritical, [Ô]Aviso[Ô]) : txtCPF.Focus() : Exit Sub : End If
If isCPF(txtCPF.Text.Trim) = False Then
MsgBox([Ô][Ô][Ô]CPF[Ô][Ô] Inválido[Ô], vbCritical, [Ô]Aviso[Ô]) : txtCPF.Focus() : Exit Sub
Else
MsgBox([Ô][Ô][Ô]CPF[Ô][Ô] válido[Ô], vbInformation, [Ô]Aviso[Ô]) : txtCPF.Focus() : Exit Sub
End If
End Sub
Private Sub txtCPF_GotFocus(sender As Object, e As EventArgs) Handles txtCPF.GotFocus
txtCPF.SelectAll()
End Sub
Private Sub txtCPF_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCPF.KeyPress
If Not Char.IsNumber(e.KeyChar) And Not e.KeyChar = vbBack And Not e.KeyChar = [Ô].[Ô] And Not e.KeyChar = [Ô]-[Ô] Then
e.Handled = True
End If
If Char.IsNumber(e.KeyChar) Then
If Len(txtCPF.Text) = 3 Then
txtCPF.Text = txtCPF.Text & [Ô].[Ô]
txtCPF.SelectionStart = Len(txtCPF.Text) + 1
End If
End If
If Char.IsNumber(e.KeyChar) Then
If Len(txtCPF.Text) = 7 Then
txtCPF.Text = txtCPF.Text & [Ô].[Ô]
txtCPF.SelectionStart = Len(txtCPF.Text) + 1
End If
End If
If Char.IsNumber(e.KeyChar) Then
If Len(txtCPF.Text) = 11 Then
txtCPF.Text = txtCPF.Text & [Ô]-[Ô]
txtCPF.SelectionStart = Len(txtCPF.Text) + 1
End If
End If
End Sub
E só criar um textbox com nome [Ô]txtCPF[Ô], um botão com nome [Ô]btnVerificar[Ô] e copiar o código para o form.
Public Sub ApenasNrs(ByRef KeyAsc As Integer)
Select Case KeyAsc
[ô]Se a tecla for numérica (0 - 9) ,backspace (8) ou hifen(-)
Case asc([Ô]0[Ô]) To asc([Ô]9[Ô]), 8, asc([Ô]-[Ô])
Case Else
Beep() [ô]Som de erro, nao é necessário
KeyAsc = 0 [ô]Cancela a entrada
End Select
End Sub
Public Function isCPF(ByVal CPF As String) As Boolean
Dim conta As Integer, soma As Integer, resto As Integer, Passo As Integer
isCPF = False
CPF = Trim(CPF)
CPF = Replace(CPF, [Ô].[Ô], [Ô][Ô])
CPF = Replace(CPF, [Ô]-[Ô], [Ô][Ô])
If Len(CPF) <> 11 Then
Exit Function
End If
For Passo = 11 To 12
soma = 0
For conta = 1 To Passo - 2
soma = soma + Val(Mid(CPF, conta, 1)) * (Passo - conta)
Next
resto = 11 - (soma - (Int(soma / 11) * 11))
If resto = 10 Or resto = 11 Then resto = 0
If resto <> Val(Mid(CPF, Passo - 1, 1)) Then
Exit Function
End If
Next
isCPF = True
End Function
Private Sub btnVerificar_Click(sender As Object, e As EventArgs) Handles btnVerificar.Click
If txtCPF.Text = [Ô]000.000.000-00[Ô] Or txtCPF.Text = [Ô]111.111.111-11[Ô] Or txtCPF.Text = [Ô]222.222.222-22[Ô] Or txtCPF.Text = [Ô]333.333.333-33[Ô] Or txtCPF.Text = [Ô]444.444.444-44[Ô] Or txtCPF.Text = [Ô]555.555.555-55[Ô] Or txtCPF.Text = [Ô]666.666.666-66[Ô] Or txtCPF.Text = [Ô]777.777.777-77[Ô] Or txtCPF.Text = [Ô]888.888.888-88[Ô] Or txtCPF.Text = [Ô]999.999.999-99[Ô] Then : MsgBox([Ô][Ô][Ô]CPF[Ô][Ô] Inválido[Ô], vbCritical, [Ô]Aviso[Ô]) : txtCPF.Focus() : Exit Sub : End If
If isCPF(txtCPF.Text.Trim) = False Then
MsgBox([Ô][Ô][Ô]CPF[Ô][Ô] Inválido[Ô], vbCritical, [Ô]Aviso[Ô]) : txtCPF.Focus() : Exit Sub
Else
MsgBox([Ô][Ô][Ô]CPF[Ô][Ô] válido[Ô], vbInformation, [Ô]Aviso[Ô]) : txtCPF.Focus() : Exit Sub
End If
End Sub
Private Sub txtCPF_GotFocus(sender As Object, e As EventArgs) Handles txtCPF.GotFocus
txtCPF.SelectAll()
End Sub
Private Sub txtCPF_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCPF.KeyPress
If Not Char.IsNumber(e.KeyChar) And Not e.KeyChar = vbBack And Not e.KeyChar = [Ô].[Ô] And Not e.KeyChar = [Ô]-[Ô] Then
e.Handled = True
End If
If Char.IsNumber(e.KeyChar) Then
If Len(txtCPF.Text) = 3 Then
txtCPF.Text = txtCPF.Text & [Ô].[Ô]
txtCPF.SelectionStart = Len(txtCPF.Text) + 1
End If
End If
If Char.IsNumber(e.KeyChar) Then
If Len(txtCPF.Text) = 7 Then
txtCPF.Text = txtCPF.Text & [Ô].[Ô]
txtCPF.SelectionStart = Len(txtCPF.Text) + 1
End If
End If
If Char.IsNumber(e.KeyChar) Then
If Len(txtCPF.Text) = 11 Then
txtCPF.Text = txtCPF.Text & [Ô]-[Ô]
txtCPF.SelectionStart = Len(txtCPF.Text) + 1
End If
End If
End Sub
Tópico encerrado , respostas não são mais permitidas