Ir ao conteúdo
  • Cadastre-se

Excel Valores inseridos em formulario não são formatados corretamente


Posts recomendados

Pessoal, saudações!

Fiz um formulario para cadastro de obras da planilha do meu trabalho porém alguns valores não recebem a formatação correta ao serem enviados para a planilha.

Os campos em que são inseridos valores ou percentuais recebem a formatação "Geral" quando são "cadastrados" e não ficam formatados, dessa forma a planilha não consegue analisar seus valores em outras abas em que esses valores são necessários. 

image.png.7890b85ed1c5231c898d46099bc70e37.png

Por favor! Preciso muito de ajuda com isso!

Agradeço desde já.

 

Segue o código do macro abaixo

Private Sub CommandButton1_Click()
Dim linha As Long
Sheets("Resumo Contratual").Cells(6, 3).Value = TextBox1.Value
Sheets("Resumo Contratual").Cells(9, 3).Value = TextBox2.Value
Sheets("Resumo Contratual").Cells(15, 3).Value = TextBox3.Value
Sheets("Resumo Contratual").Cells(18, 3).Value = TextBox4.Value
Sheets("Resumo Contratual").Cells(18, 5).Value = TextBox5.Value
Sheets("Resumo Contratual").Cells(6, 9).Value = TextBox6.Value
Sheets("Resumo Contratual").Cells(9, 9).Value = TextBox7.Value
Sheets("Resumo Contratual").Cells(9, 15).Value = TextBox8.Value
Sheets("Resumo Contratual").Cells(12, 15).Value = TextBox9.Value
Sheets("Resumo Contratual").Cells(15, 15).Value = TextBox10.Value
Sheets("Resumo Contratual").Cells(26, 3).Value = TextBox11.Value
Sheets("Resumo Contratual").Cells(29, 3).Value = TextBox12.Value
If TextBox13.Value <> 0 Then
Sheets("Resumo Contratual").Cells(42, 11).Value = TextBox13.Value / 100
Else: Sheets("Resumo Contratual").Cells(42, 11).Value = TextBox13.Value
End If
If TextBox14.Value <> 0 Then
Sheets("Resumo Contratual").Cells(39, 19).Value = TextBox14.Value / 100
Else: Sheets("Resumo Contratual").Cells(39, 19).Value = TextBox14.Value
End If
If TextBox15.Value <> 0 Then
Sheets("Resumo Contratual").Cells(42, 19).Value = TextBox15.Value / 100
Else: Sheets("Resumo Contratual").Cells(42, 19).Value = TextBox15.Value
End If
If TextBox16.Value <> 0 Then
Sheets("Resumo Contratual").Cells(45, 19).Value = TextBox16.Value / 100
Else: Sheets("Resumo Contratual").Cells(45, 19).Value = TextBox16.Value
End If
Sheets("Resumo Contratual").Cells(12, 9).Value = TextBox17.Value
mensagem = MsgBox("Dados cadastrados com sucesso", vbInformation, ":: Cadastro ::")
TextBox1.Value = Null
TextBox2.Value = Null
TextBox3.Value = Null
TextBox4.Value = Null
TextBox5.Value = Null
TextBox6.Value = Null
TextBox7.Value = Null
TextBox8.Value = Null
TextBox9.Value = Null
TextBox10.Value = Null
TextBox11.Value = Null
TextBox12.Value = Null
TextBox13.Value = Null
TextBox14.Value = Null
TextBox15.Value = Null
TextBox16.Value = Null
TextBox17.Value = Null
Formulario2.Hide

End Sub

 

Link para o comentário
Compartilhar em outros sites

Sugestão: disponibilize diretamente aqui no fórum uma amostra do seu arquivo Excel (imagens não servem) com alguns dados lançados, com o Form e os códigos instalados e informe na própria planilha quais os campos que são lançados com formato indesejado.

 

Dica - arquivos xlsm precisam ser compactados antes / clique em escolha os arquivos ...

Link para o comentário
Compartilhar em outros sites

Bom dia!

Conforme instrução, disponibilizei a planilha compactada abaixo.

PAINEL_OBRA_fch.7z

Os campos que vem com formatação incorreta são os campos de percentual, valor financeiro e datas. Me parece que oexcel não interpreta "," em valores inseridos nos formularios VBA e só aceita "."

Link para o comentário
Compartilhar em outros sites

1. campos com data

altere de ~~~> Sheets("Resumo Contratual").Cells(6, 9).Value = TextBox6.Value

para ~~~> Sheets("Resumo Contratual").Cells(6, 9).Value = Format(TextBox6.Value, "mm/dd/yyyy")

 

2. campos com valor

altere de ~~~> Sheets("Resumo Contratual").Cells(26, 3).Value = TextBox11.Value
para ~~~> Sheets("Resumo Contratual").Cells(26, 3).Value = CDbl(TextBox11.Value)
formate as células conforme desejar (2 casas decimais e ponto separador de milhares, imagino)

 

3. campos com percentual ~~~> não resultou erro aqui, digitei 34 na TextBox e na célula aparece 34,00%, digitei 1,6 e na célula aparece 1,60%; um erro que aparece aqui e que você não relatou é se a TextBox estiver vazia, aí este comando TextBox13.Value / 100 resulta erro

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!