Notifications
Clear all

Carregar TexBox com numero 1

11 Posts
2 Usuários
0 Reactions
1,984 Visualizações
(@laeoli)
Posts: 85
Estimable Member
Topic starter
 

OLá Pessoal!

to fazendo um programa para calculo de estoque e preciso que os TextBox vazios ao carregar o form assumam o valor = 1, senão dá erro e até "estouro".

Obrigado!

 
Postado : 26/11/2013 7:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Laeoli, você pode fazer de duas formas, uma é definir na Propriedade Value do TextBox o Valor inicial "1", outro é quando carregar o From no Evento Initialize colocar a instrução : TextBox1.Value = 1

Uma sugestão, para efeito de calculos, se colocar a Rotina que está utilizando pode-se definir condições verificando o Valor dos TextBox evitando os erros citados.

[]s

 
Postado : 27/11/2013 5:05 am
(@laeoli)
Posts: 85
Estimable Member
Topic starter
 

Olá Mauro!

Obrigado pela resposta. Tentei colocando 1 na propriedade Value, mas não deu certo. Na verdade o resultado apresentado na TexBox é guardado numa planilha, mas a medida que retiro valores do estoque o calculo se altera e o valor gravado na celula passa a ser outro. Todavia, se o usuário digitar zero, mesmo que seja por acaso e clicar em calcular dá erro de "estouro". Para piorar não entendo quase nada de VBA. Valeu!

 
Postado : 27/11/2013 4:43 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Laeoli, este estouro tem a ver com o Tipo de Conta e o Tipo da Variável, ou seja, dependendo do calculo que estiver fazendo, vamos supor uma divisão onde o valor é zero, teremos erro, e temos que trata-lo.
O ideal seria anexar um modelo reduzido e compactado(Rar, Zip...) para poder analisar qual o Tipo da Varável e conta que está fazendo e fazeermos a alteração correta, desta forma ficaremos em suposições.

[]s

 
Postado : 27/11/2013 4:54 pm
(@laeoli)
Posts: 85
Estimable Member
Topic starter
 

segue em anexo. as textbox txtKg1,2,3 é que eu preciso impedir a digitação do numero zero.

flw!

 
Postado : 27/11/2013 7:57 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Notei 2 problemas na rotina:
Primeiro: Se "mandar" calcular e nos txt's envolvidos não houver valor gera um erro 13 "Tipos incompativeis"
então deve ser tratado os valores envolvidos
Tipo:

Private Sub btnCalcular_Click()
if txtkg1.value="" or txtfator.value="" then
  txtprevisto1.value="" 'ou Zero
else
  txtPrevisto1.Value = txtKg1.Value * txtFator1.Value
endif

If txtKg2.Value = "" or txtfator2.value=""  Then
  txtPrevisto2.Value = "" 'ou 0
Else
  txtPrevisto2.Value = txtKg2.Value * txtFator2.Value
End If

if txtKg3.value="" or txtFator3.value="" then
  txtPrevisto3.Value ="" 'ou 0
else
  txtPrevisto3.Value = txtKg3.Value * txtFator3.Value
end if
..........

Segundo: Estouro,
ocorre quando tenta calcular txtFator.value, porem os valores envolvidos na divisão (Dividendo) são Zero, essa "conta" gera um erro matemático.
Então pode-se utilizar

if  (CCur(txtKg1.Value) + CCur(txtKg2.Value) + CCur(txtKg3.Value)=0 or (CCur(txtKg1.Value) + CCur(txtKg2.Value) + CCur(txtKg3.Value)="" then
txtFator.Value="" 'ou 0
else
txtFator.Value=Format((CCur(txtPrevisto1.Value) + CCur(txtPrevisto2.Value) + CCur(txtPrevisto3.Value)) / (CCur(txtKg1.Value) + CCur(txtKg2.Value) + CCur(txtKg3.Value)) - 1, "0.0%")
end if
 
Postado : 27/11/2013 9:38 pm
(@laeoli)
Posts: 85
Estimable Member
Topic starter
 

Reinaldo, Obrigado pela resposta, mas não da para efetuar o Calculo, pois dá erro "13". Veja como coloquei:

Private Sub btnCalcular_Click()
 btnOK.Enabled = True
 Label4.Visible = False
 lblLinha.BackColor = &HFFFFEF
 lblKg.BackColor = &HFFFFEF
 lblFator.BackColor = &HFFFFEF
 
If txtKg1.Value = "" Or txtFator.Value = "" Then
  txtPrevisto1.Value = "" 'ou Zero
Else
  txtPrevisto1.Value = txtKg1.Value * txtFator1.Value
End If

If txtKg2.Value = "" Or txtFator2.Value = "" Then
  txtPrevisto2.Value = "" 'ou 0
Else
  txtPrevisto2.Value = txtKg2.Value * txtFator2.Value
End If

If txtKg3.Value = "" Or txtFator3.Value = "" Then
  txtPrevisto3.Value = "" 'ou 0
Else
  txtPrevisto3.Value = txtKg3.Value * txtFator3.Value
End If



 If CCur(txtKg1.Value) + CCur(txtKg2.Value) + CCur(txtKg3.Value) = 0 Or CCur(txtKg1.Value) + CCur(txtKg2.Value) + CCur(txtKg3.Value) = "" Then
 txtFator.Value = "" 'ou 0
Else
txtFator.Value = Format((CCur(txtPrevisto1.Value) + CCur(txtPrevisto2.Value) + CCur(txtPrevisto3.Value)) / (CCur(txtKg1.Value) + CCur(txtKg2.Value) + CCur(txtKg3.Value)) - 1, "0.0%")
End If

 
 
   
 End Sub
 
Postado : 28/11/2013 3:46 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não sei se entendi corretamente, troque pela rotina abaixo e depois diga se é isto.

Private Sub btnCalcular_Click()

If txtKg1.Value = "" Or txtFator.Value = "" Then
  txtPrevisto1.Value = "" 'ou Zero
Else
  txtPrevisto1.Value = txtKg1.Value * txtFator1.Value
End If

If txtKg2.Value = "" Or txtFator2.Value = "" Then
  txtPrevisto2.Value = "" 'ou 0
Else
  txtPrevisto2.Value = txtKg2.Value * txtFator2.Value
End If

If txtKg3.Value = "" Or txtFator3.Value = "" Then
  txtPrevisto3.Value = "" 'ou 0
Else
  txtPrevisto3.Value = txtKg3.Value * txtFator3.Value
End If

If txtKg1.Value + txtKg2.Value + txtKg3.Value = 0 Or txtKg1.Value + txtKg2.Value + txtKg3.Value = "" Then
    txtFator.Value = "" 'ou 0
Else
    txtFator.Value = (txtPrevisto1.Value) + (txtPrevisto2.Value) + (txtPrevisto3.Value) / (txtKg1.Value) + (txtKg2.Value) + (txtKg3.Value) - 1

    txtFator = Format(txtFator, "0.0%")

End If

End Sub

[]s

 
Postado : 28/11/2013 7:11 pm
(@laeoli)
Posts: 85
Estimable Member
Topic starter
 

Oi Mauro!

Nada cara, deu estouro. Na verdade se por exemplo na Linha T o estoque for zero, o usuário vai digitar zero e então vai dar "ESTOURO". De alguma forma mesmo que seja digitado zero o programa precisa assumir o valor 1.

Fico imensamente agradecido pela ajuda!

Obrigado!

 
Postado : 28/11/2013 7:50 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se atende:

 
Postado : 29/11/2013 5:17 am
(@laeoli)
Posts: 85
Estimable Member
Topic starter
 

:mrgreen: Valeu Senhores "Resolvido"
e parabéns por este excelente trabalho de socialização do conhecimento.

 
Postado : 29/11/2013 4:03 pm