Notifications
Clear all

Duvida - Erro ao colar os Valores - VBA

3 Posts
3 Usuários
0 Reactions
767 Visualizações
(@dsouza1sj)
Posts: 1
New Member
Topic starter
 

Pessoa, Boa noite!

Estou criando um formulário com 10 Textbox irei preencher uma determinada planilha Nesse mesmo formulário criei um botão para efetuar os "cadastros" dessas Textbox, porem até aqui funciona perfeitamente, MAS ( rsrs ) dentro da planilha onde serão cadastrados os valores existe uma regra para calcular esses valores e apresentar um Valor total quando for imprimir, porem quando os valores são cadastrados os mesmo aparecem no excel como "Numero Armazenado como texto", os senhores sabem me informar como posso fazer para esse valores serem cadastrados no Excel como Contábil ou R$ ? Lembrando que no Execel já formatei as celulas para receberem da forma que desejo, mas mesmo assim os valores "veem" como texto.

segue o código do botão cadastrar. Já pesso desculpas caso o codigo esteja muito grosseiro estou começando agora no mundo de "programação em VBA"

Private Sub BtnDD_Cadastrar_Click()

Dim Dec_Despesas As Integer
    Dec_Despesas = Worksheets("Prestação de Contas").Cells(Worksheets("Prestação de Contas").Rows.Count, 1).End(xlUp).Row + 1
    
'Atribui os valores a cada Txt

    Cells(Dec_Despesas, 1).Value = Me.TxtData
    Cells(Dec_Despesas, 2).Value = Me.TxtCombus
    Cells(Dec_Despesas, 3).Value = Me.TxtKmi
    Cells(Dec_Despesas, 4).Value = Me.TxtKmf
    Cells(Dec_Despesas, 6).Value = Me.TxtPedagio
    Cells(Dec_Despesas, 7).Value = Me.TxtRefeicao
    Cells(Dec_Despesas, 8).Value = Me.TxtTrasnporte
    Cells(Dec_Despesas, 9).Value = Me.TxtDta_adiant
    Cells(Dec_Despesas, 10).Value = Me.TxtAdiant
    Cells(Dec_Despesas, 11).Value = Me.TxtCC
     
' Limpa os campos apos cadastrados.    
    Me.TxtData = Empty
    Me.TxtCombus = Empty
    Me.TxtKmi = Empty
    Me.TxtKmf = Empty
    Me.TxtPedagio = Empty
    Me.TxtRefeicao = Empty
    Me.TxtTrasnporte = Empty
    Me.TxtDta_adiant = Empty
    Me.TxtAdiant = Empty
    Me.TxtCC = Empty

End Sub
 
Postado : 25/09/2017 2:59 pm
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Boa tarde.
Experimente (nos textbox que sabidamente receberão valores numéricos) multiplicar seus valores por 1 (um) antes de inserir na planilha
Exemplo:

Cells(Dec_Despesas, 4).Value = Me.TxtKmf.value *1 

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 25/09/2017 3:26 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Dsouza1sj,

Boa Noite!

Por gentileza, da próxima vez que postar código VBA aqui no fórum, utilize a TAG CODE que fica localizada no início da caixa de mensagens.

Seja muito bem vindo ao fórum.

Como você é novato, para melhor aproveitar o mesmo, mantendo-o de forma organizada, por gentileza, leia atentamente as regras abaixo:

viewtopic.php?f=7&t=203
viewtopic.php?f=7&t=7903
viewtopic.php?f=7&t=3841
viewtopic.php?f=7&t=16757
viewtopic.php?f=7&t=12600
viewtopic.php?f=7&t=3371

Quanto a sua dúvida, onde tiver valores que você deseja que sejam número no Excel você deve convertê-los, antes, em números pois tudo que é digitado em uma Caixa de Texto é uma string (texto ou cadeia de caracteres).

Desse modo, utilize as funções de conversão do VBA para converter o texto em número, como por exemplo:

    Cells(Dec_Despesas, 1).Value = CDate(Me.TxtData)
    Cells(Dec_Despesas, 2).Value = CDbll(Me.TxtCombus) 'Supondo que esse número seja um valor com casas decimais
    Cells(Dec_Despesas, 3).Value = CInt(Me.TxtKmi) 'Supondo que esse número seja um valor Inteiro
    Cells(Dec_Despesas, 4).Value = CCur(Me.TxtKmf) 'Supondo que esse número seja um valor de moeda
    Cells(Dec_Despesas, 6).Value = Me.TxtPedagio
    Cells(Dec_Despesas, 7).Value = Me.TxtRefeicao
    Cells(Dec_Despesas, 8).Value = Me.TxtTrasnporte
    Cells(Dec_Despesas, 9).Value = Me.TxtDta_adiant
    Cells(Dec_Despesas, 10).Value = Me.TxtAdiant
    Cells(Dec_Despesas, 11).Value = Me.TxtCC
 

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 25/09/2017 3:27 pm