Olá galera,
No cód. abaixo cujos créditos são de Bruno sobral ( http://excelevba.com.br/formato-moeda-n ... to-digita/)
tenho uma rotina para que meus txtbox que receberem valores fiquem com aquela mascara de moeda conforme o usuário vá preenchendo o textbox; funciona muito bem e vem me sendo muito útil! Porém tenho um formulário com vários txtbox...para um form que tenho terei que abrir um "privete" para cada txtbox que desejo aplicar a rotina...dá muito trabalho! ..rsrssr, além do cód ficar muito extenso; gostaria de fazer uma alteração em que pudesse designar uma quantidade variável de txtbox aonde possa inserir ou tirar txtbox para receber essa configuração
Private Sub txt_faturamento_Change()
'créditos do código - Bruno Sobral (http://excelevba.com.br/formato-moeda-no-textbox-enquanto-digita/)
valor = txt_faturamento.Value
If IsNumeric(valor) Then
If InStr(1, valor, "-") >= 1 Then valor = Replace(valor, "-", "") 'retira sinal negativo
If InStr(1, valor, ",") >= 1 Then valor = CDbl(Replace(valor, ",", "")) 'retirar a virgula
If InStr(1, valor, ".") >= 1 Then valor = Replace(valor, ".", "") 'para trabalhar melhor retiramos ponto
Select Case Len(valor) 'verifica casas para inserção de ponto
Case 1
numPonto = "00" & valor
Case 2
numPonto = "0" & valor
Case 6 To 8
numPonto = Left(valor, Len(valor) - 5) & "." & Right(valor, 5)
Case 9 To 11
numPonto = inseriPonto(8, valor)
Case 12 To 14
numPonto = inseriPonto(11, valor)
Case Else
numPonto = valor
End Select
numVirgula = Left(numPonto, Len(numPonto) - 2) & "," & Right(numPonto, 2)
txt_faturamento.Value = numVirgula
Else
If valor = "" Then Exit Sub
MsgBox "Número invalido", vbCritical, "Caracter Invalido"
Exit Sub
End If
End Sub
'----------------------------------------------------------------------------------
Function inseriPonto(inicio, valor)
I = Left(valor, Len(valor) - inicio)
M1 = Left(Right(valor, inicio), 3)
M2 = Left(Right(valor, 8), 3)
F = Right(valor, 5)
If (M2 = M1) And (Len(valor) < 12) Then
inseriPonto = I & "." & M1 & "." & F
Else
inseriPonto = I & "." & M1 & "." & M2 & "." & F
End If
End Function
Abraços ...muito obrigado pelo tempo!
Postado : 17/05/2018 8:35 am