Notifications
Clear all

colar valores formatado no excel

4 Posts
3 Usuários
0 Reactions
1,148 Visualizações
(@romerito)
Posts: 8
Active Member
Topic starter
 

Boa tarde.

Estou criando um formulario onde os valores dele vai para uma planilha.

necessito que o campo textbox2 cole o valor no formato numérico para que a soma contabilize o valor inserido.

estou usando esse:
Private Sub CommandButton1_Click()

Dim ultimalinha As Object
Set ultimalinha = Plan1.Range("E1000").End(xlUp)

ultimalinha.Offset(1, 0).Value = TextBox1.Text
ultimalinha.Offset(1, 1).Value = TextBox2.Text
ultimalinha.Offset(1, 2).Value = TextBox3.Text

MsgBox "Registro inserido com sucesso!!!", , "Romeritoteste"

Resposta = MsgBox("Deseja inserir outra movimentação?", 36, "Romeritoteste")

If Resposta = vbYes Then
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""

TextBox1.SetFocus

Else
Unload Me

End If
End Sub

Porém o valor colado na minha planilha aparece dizendo que "numero armazenado como texto"

como faço para o valor que aparecer em minha planilha seja no formato de numero?

 
Postado : 20/06/2015 10:31 am
Trindade
(@trindade)
Posts: 278
Reputable Member
 

Boa tarde, ROMERITO

Já testou trocar .Text por .Value ?

Outra saída é utilizar conversões:

Cint : Inteiro
http://www.techonthenet.com/excel/formulas/cint.php

Cdbl : Double
http://www.techonthenet.com/excel/formulas/cdbl.php

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 20/06/2015 12:20 pm
(@romerito)
Posts: 8
Active Member
Topic starter
 

Trindade ainda ñ funcionou, vou reformular a duvida.
tenho uma planilha de movimento de caixa que recebe dados de um formulário com 6 textbox:
DATA - CAIXA - HISTÓRICO - DINHEIRO - CARTÃO - SAIDA

cada lançamento ocupa apenas 4 campos

tipo:
se o caixa deu entrada em dinheiro no formulario ira preencher apenas os campos DATA - CAIXA - HISTORICO - DINHEIRO.

Porém quando deixo o campo DINHEIRO em branco e é preenchido o campo CARTAO ou SAIDA, a minha planilha recebe o valor na coluna errada.

Alguem poderia me ajudar?

segue formula usada:

Private Sub INSERIR_Click()

Range("D1000").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Select

Dim data As Date
data = TextBox1
ActiveCell = data
ActiveCell.Offset(0, 1).Select

ActiveCell = TextBox2
ActiveCell.Offset(0, 1).Select

ActiveCell = TextBox3
ActiveCell.Offset(0, 1).Select

Dim dinheiro As Currency
dinheiro = TextBox4--------------------------------------------aparece amarelo quando clico no botão.
ActiveCell = dinheiro
ActiveCell.Offset(0, 1).Select

Dim cartao As Currency
cartao = TextBox5
ActiveCell = cartao
ActiveCell.Offset(0, 1).Select

Dim saida As Currency
saida = TextBox6
ActiveCell = saida
ActiveCell.Offset(0, 1).Select

MsgBox "Registro inserido com sucesso!!!", , "Romeritoteste"

Resposta = MsgBox("Deseja inserir outra movimentação?", 36, "Romeritoteste")

If Resposta = vbYes Then
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""

TextBox1.SetFocus

Else
Unload Me

End If

End Sub

 
Postado : 20/06/2015 10:53 pm
(@edcronos)
Posts: 1006
Noble Member
 

eu não lido muito bem com isso de passar formatos para celulas
eu já deixo a celula formatada e uso tudo value ou value2 quando é de range para range
e o ideal é usar .Value para pegar valores de objetos, isso pq eles normalmente tem varias referencias embutidas

dinheiro = TextBox4 "
dinheiro = TextBox4.value

para evitar o erro da variavel em caso da box vazia use um if

if TextBox1.Value<>"" then
dinheiro = TextBox4.value
end if

e vc está usando referencias de celulas que é dificil de acompanhar " pelo menos para mim"
e só funciona se os pré requisitos estiverem corretos
Range("D1000").Select
Selection.End(xlUp).Select
ActiveCell.Offset(0, 1).Select

use variaveis para guardar a coluna e a linha e trabalhe com elas e trabalhe com elas

Linha_final = Selection.End(xlUp).row 'idica ultima linha com valor
Linha_final = Selection.End(xlUp).row + 1 'a linha abaixo :P

Coluna_inicial = Range("D1000").Column

e em vez de usar
ActiveCell.Offset(0, 1).Select
use
cells(linh_final , coluna_inicail +1).value=

para
ActiveCell.Offset(1, 0).Select
use
cells(linh_final +1, coluna_inicail).value=

o codigo fica mais facil de acompanhar e corrigir sem falar que não usa select nem active e isso deixa a macro mais rapida

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 21/06/2015 1:56 am