FORMAT Separador de milhar
Enviado: 05 Abr 2018 às 21:00
por FRF
Pessoal, boa noite!
Tenho uma dúvida sobre o separador de mihar no VBA.
Por exemblo, se eu digitar um numero em um textbox de uma useform sem separador de mihar.
Sendo ele 1000, 10000 ou 1000000.
Como posso usar a função Format para colocar apenas o separador de milhar sem colocar numeros decimais?
FORMAT Separador de milhar
Enviado: 05 Abr 2018 às 22:00
por fcarlosc2018
Boa-noite
Tente assim:
Private Sub TextBox1_AfterUpdate()
On Error Resume Next
'Me.TextBox1 = FormatNumber(Me.TextBox1)
TextBox1 = Format(TextBox1, "R$ #,###0.00")
End Sub
Private Sub TextBox1_Change()
If Not IsNumeric(TextBox11.Text) Then TextBox11.Text = Empty
Valor = TextBox1.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)
TextBox1.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
FORMAT Separador de milhar
Enviado: 06 Abr 2018 às 15:49
por FRF
Boa tarde fcarlos2018.
Muito obrigado pela resposta.
Mas já consegui resolver de uma outra maneira.