Notifications
Clear all

Dividindo valores zerados

7 Posts
4 Usuários
0 Reactions
1,769 Visualizações
(@gilton)
Posts: 21
Eminent 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
(@xlarruda)
Posts: 732
Honorable Member
 

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

Por favor explique melhor...

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 09/05/2018 8:13 pm
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/05/2018 5:06 am
(@gilton)
Posts: 21
Eminent 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
(@xlarruda)
Posts: 732
Honorable 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ç!

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 10/05/2018 11:59 am
(@edcronos2)
Posts: 346
Reputable 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
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/05/2018 7:39 pm