Notifications
Clear all

VBA.IsNumeric

5 Posts
2 Usuários
0 Reactions
958 Visualizações
(@adailtonfg)
Posts: 0
New Member
Topic starter
 

estou usando a seguinte instrução para uma planilha que vc's me ajudaram a montar

If VBA.IsNumeric(Application.Match(Bcpf.Value, Sheets("plan1").Range("F1:f" & inserirLinha), 0))

lblMenssag1 = "CPF já cadastrado dia - " & Cells(Application.Match(Bcpf.Text, Sheets("plan1").Range("F1:f" & inserirLinha), 0), "H")
lblMenssag2 = "RG - " & Cells(Application.Match(Brg.Text, Sheets("plan1").Range("G1:G" & inserirLinha), 0), "H") ', vbYesNo, "ASK"
Call desligabot

Exit Sub
End If

o valor que ela esta recebendo é do Bcpf que esta formatado da seguinte maneira, Bcpf = format (Bcpf, "000"".""000"".""000""-""00")
porem quando retiro a formatação do campo a instrução não "bloqueia" ou Não me retorna se a gravação esta sendo duplicada.

ja testei varias adaptações do código e ate o momento sem sucesso.

Estou tentando adaptar o código para outra aplicação onde não posso duplicar os códigos de produtos.

 
Postado : 26/06/2014 2:55 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Você está "gravando" o CPF formatado, ou seja na planilha o CPF está salvo com os pontos e traço (123.456.789-89), então se procurar 12345678989 não terá coincidencia, é considerado um registro diferente.

 
Postado : 27/06/2014 4:54 am
(@adailtonfg)
Posts: 0
New Member
Topic starter
 

Isso mesmo Reinaldo, mesmo "gravando" sem os pontos ela duplica e quando, e "gravada" com os pontos da formatação ela não deixa duplicar.

Posso apagar todos os dados da Planilha e retirar a formatação do campo, e "gravo" o registro CPF = 1 e RG = 1. quando eu repito a "gravação" com os mesmos valores sem a formatação do campo ("000"".""000"".""000""-""00"), ela duplica. E com a formatação não.

 
Postado : 27/06/2014 8:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se for utilizar o cpf sem formatação na planilha provavelmente será considerado como numeo, o valor procurado pela função match recebe da Bcpf como texto, então a comparação resulta erro, pois não encontra a "palavra" "1" nos números da coluna.
Nessa situação e preciso converter o valor da Bcpf pata numero, algo +/- assim Application.Match(CDbl(Bcpf.Value), Sheets("plan1").Range("F1:f" & inserirLinha), 0)

 
Postado : 27/06/2014 9:43 am
(@adailtonfg)
Posts: 0
New Member
Topic starter
 

Muito obrigado!!!

Funcionou 100%, agradeço a ajuda!

If VBA.IsNumeric(Application.Match(CDbl(Bcpf.Value), Sheets("plan1").Range("F1:f" & inserirLinha), 0)) And VBA.IsNumeric(Application.Match(CDbl(Brg.Value), Sheets("plan1").Range("G1:G" & inserirLinha), 0)) Then

lblMenssag1 = "CPF já cadastrado dia - " & Cells(Application.Match(CDbl(Bcpf.Value), Sheets("plan1").Range("F1:f" & inserirLinha), 0), "H")
lblMenssag2 = "RG - " & Cells(Application.Match(CDbl(Brg.Value), Sheets("plan1").Range("G1:G" & inserirLinha), 0), "H")
Call desligabot

Exit Sub
End If

 
Postado : 27/06/2014 11:07 am