CAPTURAR PONTO NUMA STRING

USUARIO.EXCLUIDOS 15/09/2006 12:56:21
#171669
Pessoal, eu tenho um string e quero saber onde há ponto para dar um msg ao usuario.

vou por exemplo que eu tenho feito:

If txtcapsocial.Text <> "" Then

For i = 1 To Len(txtcapsocial.Text)

Dim c As String
c = Mid(txtcapsocial.Text, i, i)

If c = "." Then

MsgBox "Caracter '.' inválido" & Chr(13) & "Para separar as casas décimais use a vírgula", vbCritical, "Empresa"
txtcapsocial.SetFocus
Exit For
End If
Next i

------------------------------------------

o problema é que o vb n me dá o ponto só. o que ele vai gerar vai ser

"2." ou ".22" no caso do numero for "22.22" quando o i = 4.

sem ser o replace alguma sugestao como é k isso acontece?


USUARIO.EXCLUIDOS 15/09/2006 13:03:40
#171672
If txtcapsocial.Text <> "" Then 

For i = 1 To Len(txtcapsocial.Text)

Dim c As String
c = Mid(txtcapsocial.Text, i, 1)

If c = "." Then

MsgBox "Caracter '.' inválido" & Chr(13) & "Para separar as casas décimais use a vírgula", vbCritical, "Empresa"
txtcapsocial.SetFocus
Exit For
End If
Next i



tente como está acima
ALEXANDREMORAIS 15/09/2006 13:09:37
#171676
Eu faria diferente.Acho que isso aqui vai te ajudar..
[c]
Dim pos As Integer
pos = InStr(txtcapsocial.Text, ".")
If pos > 0 Then
MsgBox "Caracter '.' inválido" & Chr(13) & "Para separar as casas décimais use a vírgula", vbCritical, "Empresa"
End If
[c]
'Qualquer dúvida poste novamente....
USUARIO.EXCLUIDOS 15/09/2006 13:10:53
#171677
Resposta escolhida
Não precisa de loop


 

If InStr(1, txtcapsocial.Text, ".", vbTextCompare) Then
MsgBox "Caracter '.' inválido" & Chr(13) & "Para separar as casas décimais use a vírgula", vbCritical, "Empresa"
txtcapsocial.SetFocus
End If


Tópico encerrado , respostas não são mais permitidas