Notifications
Clear all

Alterar moeda (câmbio) usando VBA

4 Posts
2 Usuários
0 Reactions
1,259 Visualizações
(@gilbertjrs)
Posts: 77
Trusted Member
Topic starter
 

Pessoal, boa tarde.

Estou desenvolvendo uma planilha no trabalho que me foi pedido elaborar um resumo de valores monetários que aparecem em algumas células e também em alguns gráficos. Depois foi me pedido que estes valores pudessem ser alterados para reais, dólar ou euro.

Fiz a programação VBA e nas células tudo está funcionando perfeitamente porém, nos gráficos não.
Vinculei a formatação de eixo e rótulo de dados dos gráficos à estas células porém, ao trocar de moeda as casa decimais não se mantem e o pior quando volto para reais a formatação bagunça completamente (Nestes gráficos, o formato em reais inicial não é nada igual ao novo formato em reais).

Criei aqui em casa uma planilha simulando resumidamente a de lá do serviço e os erros se repetem.
(Esta planilha está em anexo)

Peço ajuda aos colegas do forum.

 
Postado : 07/01/2018 1:24 pm
(@klarc28)
Posts: 971
Prominent Member
 

Para cada moeda, grave uma macro que insere um gráfico.

Vá em Exibição >> Macros >> Gravar Macro

Selecione os dados e insira o gráfico

Vá em Exibição >> Macros >> Parar Gravação

Quando você alterar a moeda, chame a macro que corresponde à moeda.

 
Postado : 07/01/2018 1:37 pm
(@gilbertjrs)
Posts: 77
Trusted Member
Topic starter
 

Cara, eu já havia gravado uma macro e alterado o valor de moeda das células, inseri depois os gráfico (vinculando a formatação às células) e estava dando tudo errado.

Agora gravei novamente uma macro alterando o tipo de moeda nas mesma células porém, agora os gráficos já existiam e, o código gravado foi diferente do primeiro.

Macro inicialmente gravada pelo Excel (e que havia me baseado para criar o código)

Sub Nacro1()
'
' Macro1 Macro
'

'
    Range("P18").Select
    ActiveCell.FormulaR1C1 = "dolar"
    Range("B25:N29").Select
    Selection.NumberFormat = "[$$-409] #,##0.00"
    Range("P18").Select
    ActiveCell.FormulaR1C1 = "euro"
    Range("B25:N29").Select
    Selection.NumberFormat = "[$€-2]  #,##0.00"
    Range("P18").Select
    ActiveCell.FormulaR1C1 = "real"
    Range("B25:N29").Select
    Selection.NumberFormat = "$  #,##0.00"
    
End Sub

Macro gravada agora (o Excel gravou diferente desta vez)

Sub Macro2()
'
' Macro2 Macro
'

'
    Range("P18").Select
    ActiveCell.FormulaR1C1 = "dolar"
    Range("B25:N29").Select
    Selection.NumberFormat = _
        "_-[$$-409]* #,##0.00_ ;_-[$$-409]* -#,##0.00 ;_-[$$-409]* ""-""??_ ;_-@_ "
    Range("P18").Select
    ActiveCell.FormulaR1C1 = "euro"
    Range("B25:N29").Select
    Selection.NumberFormat = _
        "_-[$€-2] * #,##0.00_-;-[$€-2] * #,##0.00_-;_-[$€-2] * ""-""??_-;_-@_-"
    Range("P18").Select
    ActiveCell.FormulaR1C1 = "real"
    Range("B25:N29").Select
    Selection.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
End Sub

Em ambas as gravações de macro foram alterados os tipos de moedas nas mesmas células e a macro gerada foi diferente em cada vez. Isto é normal? A gravação de macros no Excel dependendo do contexto pode gerar códigos diferentes?

Agora a troca de moeda está correta porém, a quantidade de casas decimais em EURO e DOLAR altera para 3 (apenas nos gráficos)

 
Postado : 08/01/2018 8:17 am
(@gilbertjrs)
Posts: 77
Trusted Member
Topic starter
 

Klarc28, bom dia.

Você sabe como eu posso resolver este problema que ainda está ocorrendo em relação às casas decimais nos gráficos?

 
Postado : 17/01/2018 7:05 am