Página 1 de 1

Fórmulas excel e dados inseridos via VBA não funcionam

Enviado: 16 Abr 2018 às 16:14
por Petitet
Quem pode me ajudar? Abaixo está o meu código VBA, porém quando gravado via formulário na planilha do excel os números apareçam com R$, porém eles não são lidos pela fórmula Somases. Não consigo identificar o erro. Já fiz testes e os números gravados não são lidos como números. Como resolver esta questão para que o excel faça a leitura dos dados gravados como número para que a função somases funcione.

Private Sub Cmd_GravarDebito_Click()

'Procedimento para gravar despesas

linha = 3 'Achando a linha disponível

Do Until Sheets("Lançamentos").Cells(linha, 2) = ""
linha = linha + 1
Loop

If Txt_Datad <> "" And Cbx_Opctd <> "" And Cbx_CContd <> "" And Txt_Descd <> "" And _
Txt_Valrd <> "" And Cbx_Rzsnd <> "" Then

'Cadastrar dados da receita na planilha

Dim N As Double

On Error Resume Next
N = Txt_Valrd

Plan8.Cells(linha, 2).Value = Me.Txt_Datad.Value
Plan8.Cells(linha, 3).Value = Me.Txt_Descd.Value
Plan8.Cells(linha, 4).Value = Me.Txt_Valrd.Value
Plan8.Cells(linha, 5).Value = Me.Cbx_Opctd.Value
Plan8.Cells(linha, 6).Value = Me.Cbx_Rzsnd.Value
Plan8.Cells(linha, 10).Value = Me.Cbx_CContd.Value

MsgBox "Dados Cadastrados com Sucesso", vbInformation, "Lançado"

'Limpar celulas do formulario despesa
Me.Txt_Datad.Value = Null
Me.Cbx_Opctd.Value = Null
Me.Cbx_CContd.Value = Null
Me.Txt_Descd.Value = Null
Me.Txt_Valrd.Value = Null
Me.Cbx_Rzsnd.Value = Null

Else
MsgBox "Há Campos em branco", vbCritical, "Preencha todos os campos para cadastrar dados"

End If

End Sub

Re: Fórmulas excel e dados inseridos via VBA não funcionam

Enviado: 16 Abr 2018 às 16:28
por babdallas
Ao atribuir dados do formulário para a planilha, faça conversões (CDbl, Clng, etc). Exemplo, se for número inteiro use clng(txtTeste.value) e se for valor decimal, use cdbl(txtTeste.value).
Assim os valores serão passados como número e não como texto.

Fórmulas excel e dados inseridos via VBA não funcionam

Enviado: 16 Abr 2018 às 19:38
por Petitet
Muito obrigado pela dica, já coloquei no código - Plan8.Cells(linha, 4).Value = cdbl (Me.Txt_Valrd.Value) agora funciona perfeitamente, os números inseridos são lidos pelas fórmulas.