Atribuir valor text...
 
Notifications
Clear all

Atribuir valor textbox corretamente

3 Posts
2 Usuários
0 Reactions
1,078 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,

Tenho um formulário que quando digito o valor € 123,23, dá erro na programação (erro 13). Acontece que o Excel está em português, mas a barra de comandos do VBA está em inglês. Com isso, todo número que digito no formulário, por exemplo € 123,23, dá o erro 13, pois o código do VBA está entendendo como 123.23 e não reconhece como número.
Isso acontece em um computador que está com essa diferença entre o Excel e o VBA (português/ inglês). Um colega já recomendou a reinstalação, já fiz três vezes e o VBA continua vindo em inglês. Nos outros computadores o formulário roda muito bem, mas nesse dá sempre o erro. Já mudei a opção de separador de milhares e decimais no Excel, mas nada adiantou.

Por exemplo:

Private Sub MULTIMAQ1_Change()

Dim MT1 As Double
If IsNumeric(MULTIMAQ1.Value) = False Then
MT1 = 0
Else
MT1 = MULTIMAQ1
End If

Dim MT2 As Double
If IsNumeric(MULTIMAQ2.Value) = False Then
MT2 = 0
Else
MT2 = MULTIMAQ2
End If

MULTIMAQ3.Value = MT1 + MT2
MULTIMAQ3.Value = Format(CDbl(MULTIMAQ3), "€ ###0.00")
End sub

O MT1 recebe o €123,23 e o MULTIMAQ3.value fica 123.23. Com isso o 123.23 não é reconhecido como valor e dá o erro 13?

Alguém sabe o motivo?

 
Postado : 22/06/2018 4:31 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

saulomota,

Bom dia!

Pedimos, por gentileza, ao postar código VBA, utilizar a ferramenta CODE localizada logo acima da caixa de mensagens (quinto botão da esquerda para a direita).

Copiei seu código aqui para um exemplo e, realmente, roda legal sem qualquer problema. Trabalho com o Excel 2007 e VBA conforme imagem abaixo.

Veja o que achei no Help do próprio VBA. Creio que você deve verificar isso e, se for o caso, até abandonar o Excel que está utilizando e passar a utilizar uma versão que o VBA venha em português.

"local
O conjunto de informações que corresponde a um determinado idioma e país. A configuração do local do código afeta o idioma de termos como palavras-chave e define configurações específicas do local, como os separadores decimal e de lista, formatos de data e ordem de classificação de caracteres.

A configuração do local do sistema afeta o modo como a funcionalidade ligada ao local se comporta; por exemplo, quando você exibe números ou converte seqüências de caracteres em dados. Você configura o local do sistema utilizando os utilitários do Painel de controle fornecidos pelo sistema operacional.

Ainda que os locais do código e do sistema geralmente sejam definidos com a mesma configuração, eles podem diferir em algumas situações. Por exemplo, no Visual Basic Standard Edition e no Visual Basic Professional Edition o código não é traduzido do Inglês (E.U.A.). O local do sistema pode ser configurado com o idioma e o país do usuário, mas o local do código é sempre configurado como Inglês (E.U.A.) e não pode ser alterado. Neste caso, são utilizados os separadores, os espaços reservados de formatação e a ordem de classificação do Inglês (E.U.A.)."

 
Postado : 22/06/2018 5:45 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Obrigado pela resposta Wagner,

Esse computador usa o Excel 2016 do Office 365 por meio de uma assinatura. Antes tinha do Excel 2007 instalado. Como havia dito, reinstalei o Excel 2016 três vezes já, mas o VBA continua em inglês, ele não desinstala e depois instala com o Excel 2016.

 
Postado : 22/06/2018 9:49 am