Página 1 de 1

Código que remove formatação de moeda quando é decimal

Enviado: 28 Mai 2018 às 22:09
por danilov
Boa noite!

Não manjo em programação no excel, porém estava precisando de uma fórmula para que todos os caracteres de uma planilha automaticamente mudasse para maiúscula, caso fosse digitado em letra minúscula. Localizei o seguinte código na internet:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next ' no caso de precisar deletar alguma coisa
If Not Intersect(Target, Range("D6:G105")) Is Nothing Then Target = UCase(Target)
End Sub

O código funciona perfeitamente, porém eu tenho uma coluna que é de valores (moeda), e na hora que em digito um número que tenha casa decimal (exemplo: R$ 12,45), o código remove a formatação de moeda, deixando apenas o escrito 12,45. O mais interessante é que só acontece esse problema em números decimais, quando é número inteiro aparece a formatação de moeda normalmente.

O espaço que preciso que seja formatado é igual está no código D6:G105, porém caso tiver como, removendo a coluna F já resolve meu problema, porém não sei como limito colunas diferentes no mesmo código.

Quem puder me ajuda eu ficarei grato.

Re: Código que remove formatação de moeda quando é decimal

Enviado: 28 Mai 2018 às 22:13
por babdallas
Tente assim
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
          On Error Resume Next ' no caso de precisar deletar alguma coisa
          If Not VBA.Isnumeric(Target)and  Not Intersect(Target, Range("D6:G105")) Is Nothing Then Target = UCase(Target)
End Sub

Código que remove formatação de moeda quando é decimal

Enviado: 28 Mai 2018 às 22:33
por danilov
Muito obrigado meu amigo, problema solucionado.