Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
[Resolvido] Alterar Formato Moeda VBA - Excel
23-08-2014, 20:58 (Esta mensagem foi modificada pela última vez a: 23-08-2014 20:59 por nioxys.)
Mensagem: #2
RE: Alterar Formato Moeda VBA - Excel
Com a ajuda de um membro de um outro forum consegui chegar a uma solução.

Variáveis globais,

Código:
Option Explicit

Dim OldFormat As String, NewFormat As String

Função para buscar o formato actual

Código:
Private Function GetFormat(ByVal Value) As String
 Select Case UCase(Value)
   Case "EUR"
     GetFormat = "#,##0 $"
   Case "GBP"
     GetFormat = "[$£-809]#,##0"
   Case "USD"
     GetFormat = "#,##0 [$USD]"
 End Select
End Function

Utilização do evento GotFocus da combobox para ler o formato actual,

Código:
Private Sub ComboBox1_GotFocus()
 'Get the old format
 OldFormat = GetFormat(ComboBox1.Value)
End Sub

A substituição do formato utilizando o evento LostFocus da combobox,

Código:
[code]Private Sub ComboBox1_LostFocus()
 
 Dim Ws As Worksheet
 
 NewFormat = GetFormat(ComboBox1.Value)
 
 If OldFormat = "" Then Exit Sub
 If NewFormat = "" Then Exit Sub

 On Error GoTo ApplyFormat
 
 With Application.FindFormat
   .Clear
   .NumberFormat = OldFormat
 End With
 With Application.ReplaceFormat
   .Clear
   .NumberFormat = NewFormat
 End With
 'Replace all
 For Each Ws In Worksheets
   Ws.UsedRange.Replace "", "", SearchFormat:=True, ReplaceFormat:=True
 Next
 Exit Sub

ApplyFormat:
 
 Dim SaveFormat As String
 On Error GoTo ExitPoint
 SaveFormat = ActiveCell.NumberFormat
 ActiveCell.NumberFormat = GetFormat("EUR")
 ActiveCell.NumberFormat = GetFormat("GBP")
 ActiveCell.NumberFormat = GetFormat("USD")
 ActiveCell.NumberFormat = SaveFormat
 
 Resume
ExitPoint:
End Sub

Fica aqui um ficheiro com um exemplo.

Download - Ficheiro Exemplo[/code]

“A neutron walks into a bar and asks how much for a drink. The bartender replies, ‘For you, no charge.’” - Sheldon Cooper
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Mensagem neste Tópico
RE: Alterar Formato Moeda VBA - Excel - nioxys - 23-08-2014 20:58

Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)