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
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 27/11/2013 9:38 pm