Notifications
Clear all

Dividindo valores zerados

7 Posts
4 Usuários
0 Reactions
1,749 Visualizações
(@gilton)
Posts: 0
New Member
Topic starter
 

boa noite,

preciso de um comando em vba para dividir os valores de duas celulas que estão zeradas 0, está dando erro no codigo quando peço para dividir.

alguem pode me ajudar

no aguardi, obrigado.

 
Postado : 09/05/2018 7:31 pm
(@xlarruda)
Posts: 0
New Member
 

Dividir valores zerados? Como assim?
Se tentar dividir por 0 vai dar sempre erro.

Por favor explique melhor...

 
Postado : 09/05/2018 8:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Todo editor/compilador de programação segue estritamente as regras/leis matemáticas, assim toda divisão por zero é proibida; gerando assim erro.
Se está em um loop de divisão e porventura algum dos divisores tende a ser Zero ou mesmo estar sem preenchimento, e necessário tratar essa operação;

Por exemplo: supondo que está dividindo celula A / celula b, deve ser algo =/- assim: se celula b > 0 then a/b else 0

 
Postado : 10/05/2018 5:06 am
(@gilton)
Posts: 0
New Member
Topic starter
 

estou tentando aplicar a regra abaixo
x = Range("a1").Value / Range("b1").Value

só que a1 e b1 será zero (0).

e gera erro.

na formula normal deu certo colocando SEERRO(a1/b1;0)
o resultado fica 0.

quero implementar a divisão em vba, mas não estou conseguindo

 
Postado : 10/05/2018 11:49 am
(@xlarruda)
Posts: 0
New Member
 

Acredito que isso resolva:

Lançando resultado em "C1" .

Sub Dividir_por_0()
On Error Resume Next
x = WorksheetFunction.IfError(Plan1.Range("A1").Value / Plan1.Range("B1").Value, "0")
If [a1].Value = 0 Or [b1].Value = 0 Then
[C1] = 0
Else
[C1] = x
End If
End Sub

Não sei qual o seu objetivo mas ATENÇÃO! Divisão por 0 não existe. O que esse código faz é "forçar" uma divisão trazendo o resultado 0.

Abrç!

 
Postado : 10/05/2018 11:59 am
(@edcronos2)
Posts: 0
New Member
 

de certa forma dividir por zero é considerado dividir por infinitas partes ,
mas isso apenas pq os grandes matemáticos não chegaram a uma conclusão

https://www.youtube.com/watch?v=F9_x95jxDAo

eu tbm estou desenvolvendo uma aplicação que pode indevidamente entrar divisão por zero
e como não é uma aplicação comercial eu tbm tive que definir um valor padrão

 
Postado : 10/05/2018 12:12 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Outra possibilidade; experimente:

If Range("b1").Value = 0 Or IsNull(Range("B1").Value) Then
    x = 0
Else
x = Range("a1").Value / Range("b1").Value
End If
 
Postado : 10/05/2018 7:39 pm