[Resolvido] Alterar Formato Moeda VBA - Excel
|
08-08-2014, 17:28
(Esta mensagem foi modificada pela última vez a: 23-08-2014 21:00 por nioxys.)
Mensagem: #1
|
|||
|
|||
[Resolvido] Alterar Formato Moeda VBA - Excel
Olá
Tenho um ficheiro Excel que é usado para fazer orçamentos e uma vez que os orçamentos podem ser feitos em vários tipos de moeda, Euro, Dólar, etc eu estou a tentar arranjar uma forma de alterar o formato das células que estão formatadas como moeda através de uma combobox. Ou seja, o utilizador selecciona na combobox a moeda a utilizar naquele orçamento e as células formatadas como moeda assumem essa "moeda", por exemplo, se o utilizador escolher dólar a célula passa a apresentar os valores 100,00 USD ou $100,00 (depende como eu colocar o formato). Já consegui fazer isto no entanto funciona apenas para intervalos finitos, ou seja, A1:A100 por exemplo. Mas eu não sei se os itens de um orçamento vão terminar na linha 100 ou se num qualquer caso vou ter 500 linhas. Para além disso eu tenho várias colunas com diversas células formatadas como moeda. O que estou a tentar fazer é tornar o meu código dinâmico. Neste momento tenho o seguinte, Eu leio o formato inicial através de uma combobox, por exemplo, se a combobox estiver como EUR isso significa que as células estão formatadas naquele momento como EUR, então eu uso o evento DropButtonclick() para obter o estado inicial e passo esse valor para uma variável global chamada oldformat. Código: Private Sub ComboBox1_DropButtonclick() A variável oldformat é declarada, Código: Public oldformat As String Depois disto eu uso o evento change da combobox para ler o novo valor, e coloco-o na variável newformat. Código: Private Sub ComboBox1_Change() E ao mesmo tempo tento fazer um find/replace pelo livro do excel de forma a substituir o formato inicial pelo novo e aqui está o problema. Não estou a conseguir atribuir o valor das variáveis oldformat e newformat à propriedade Numberformat Obtenho o erro Run-time error '1004': Application-defined or object-defined error nas linhas Código: Application.FindFormat.NumberFormat = oldformat Já tentei, Código: Application.FindFormat.NumberFormat = "oldformat" Também não funciona. Conhecem alguma forma de atribuir o valor destas variáveis à propriedade NumberFormat? Ou alguém tem ideia de como fazer isto, outro método, outra abordagem, etc, estou receptivo a novas ideias. Obrigado. “A neutron walks into a bar and asks how much for a drink. The bartender replies, ‘For you, no charge.’” - Sheldon Cooper |
|||
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 Função para buscar o formato actual Código: Private Function GetFormat(ByVal Value) As String Utilização do evento GotFocus da combobox para ler o formato actual, Código: Private Sub ComboBox1_GotFocus() A substituição do formato utilizando o evento LostFocus da combobox, Código: [code]Private Sub ComboBox1_LostFocus() 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 |
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 1 Visitante(s)