FOI MAL TINHA POSTADO O TÓPICO NA AREA ERRADA :mellow: apaguem o outro Bom, essa máscara é bem legal, ela aceita que o primeiro caracter seja "+" "-" "," ou números. Do segundo caracter em diante, aceita apenas números e uso de uma vírgula(não se foi digitado "+" ou -" ou "," no primeiro caracter) Pra falar a verdade, nem mesmo é uma máscara, você digita e apaga rapidao, você nem nota(so se segurar). objeto é sua caixa de texto. Só substituir. Private Sub MDE(objeto As Object)
Dim i As Integer
Dim virgula As Boolean
For i = 2 To Len(objeto)
If Mid(objeto, i, 1) = "." Then
objeto = Left(objeto, Len(objeto) - 1) + ","
SendKeys ("{end}")
Beep
Exit Sub
End If
If Asc(Mid(objeto, 1, 1)) = 44 And Asc(Mid(objeto, i, 1)) = 44 Then
objeto = Left(objeto, Len(objeto) - 1)
SendKeys ("{end}")
Beep
Exit Sub
End If
If Asc(Mid(objeto, 2, 1)) = 44 And (Asc(Mid(objeto, 1, 1)) = 43 Or Asc(Mid(objeto, 1, 1)) = 45 Or Asc(Mid(objeto, 1, 1)) = 44) Then
objeto = Left(objeto, Len(objeto) - 1)
SendKeys ("{end}")
Beep
Exit Sub
End If
If Asc(Mid(objeto, i, 1)) <> 8 And Asc(Mid(objeto, i, 1)) <> 44 And Asc(Mid(objeto, i, 1)) <> 46 And Asc(Mid(objeto, i, 1)) < 48 Or Asc(Mid(objeto, i, 1)) > 57 Then
objeto = Left(objeto, Len(objeto) - 1)
SendKeys ("{end}")
Beep
End If
If Mid(objeto, i, 1) = "," Then
If virgula = True Then
objeto = Left(objeto, Len(objeto) - 1)
SendKeys ("{end}")
Beep
End If
virgula = True
End If
Next i
If Len(objeto) = 1 Then
For i = 1 To Len(objeto)
If Mid(objeto, i, 1) = "." Then
objeto = Left(objeto, Len(objeto) - 1) + ","
SendKeys ("{end}")
Beep
Exit Sub
End If
If Asc(Mid(objeto, i, 1)) <> 8 And Asc(Mid(objeto, i, 1)) <> 43 And Asc(Mid(objeto, i, 1)) <> 45 And Asc(Mid(objeto, i, 1)) <> 46 And Asc(Mid(objeto, i, 1)) <> 44 And (Asc(Mid(objeto, i, 1)) < 48 Or Asc(Mid(objeto, i, 1)) > 57) Then
objeto = Left(objeto, Len(objeto) - 1)
SendKeys ("{end}")
Beep
End If
Next i
End If
End Sub Espero que gostem. ----EDIT---- Arrumei uns errinhos