Macro separação dec...
 
Notifications
Clear all

Macro separação decimal no separador de milhar

3 Posts
3 Usuários
1 Likes
1,191 Visualizações
(@guma-cojogra)
Posts: 7
Active Member
Topic starter
 

Bom dia

o meu sistema gera um relatório tipo extrato bancário onde os números negativos vem acompanhados por um D e os positivos por um C Criei a seguinte macro para formatar esses valores para número.

Mas a mesma está invertendo o separador de decimal pelo separador de milhar ou seja ela coloca a virgula onde fica o ponto.

Exemplo se o número for 1.000,00D  fica -1,00

se tirar o ponto ex 1000,00D fica -100000,00

já mexi na configuração do Excel e não adiantou.

 

Sub Ajustar_Valores()
    
    Dim r As range
 
    
    Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
      
    Application.Volatile
    For Each r In Selection
    
    
        If Right(r.Text, 1) = "D" Then
        
      r.Value = Val(Left(r.Text, Len(r.Text) - 1)) * -1
        
        Else
        
     r.Value = Val(Left(r.Text, Len(r.Text) - 1))
     
        End If
        
    
    Next r
        
        
End Sub
 
Postado : 24/11/2021 9:59 am
Tags do Tópico
DJunqueira
(@dmorais)
Posts: 0
Active Member
 

Muitas vezes vc pode resolver isso de forma sistemática pelo Power Query.

 

Propriedade Application.DecimalSeparator (Excel)

 
Postado : 24/11/2021 8:26 pm
guma.cojogra reacted
(@celso-yano)
Posts: 6
Active Member
 

Boa tarde. Tenta isso ...

Sub Ajustar_Valores()
    
Dim r As Range
Dim var1 As Variant
Dim var2 As Double

    For Each r In Selection
        var1 = Replace(r.Value, " ", "")
        
        If Right(var1, 1) = "D" Then
            var1 = Replace(var1, "D", "")
            var2 = -(var1 * 1)
        Else
            var1 = Replace(var1, "C", "")
            var2 = var1 * 1
            
        End If
        
        r.Value = var2
        r.NumberFormat = "#,##0.00"
        
    Next r

End Sub
 
Postado : 25/11/2021 3:33 pm