Notifications
Clear all

Não faz a divisão

10 Posts
3 Usuários
0 Reactions
1,394 Visualizações
(@valdecirrk)
Posts: 230
Reputable Member
Topic starter
 

Boa tarde

tenho esta linha de comando, mas como nem todos os campos são preenchidos ele retorna um erro porque não divide por zero, como posso fazer ele me retornar o valor mesmo tendo celulas vazias
um valor para ezemplo:
4/9 = 0,44 é esse resultado que preciso, mas me da um erro.
no modulo esta assim, tenho várias outras na mesma condição.

Sub soma_EPI()

Sheets("EPI").Cells(43, 7) = (Application.WorksheetFunction.Sum(Sheets("EPI").Range("F9:F23")) / Application.WorksheetFunction.Sum(Sheets("EPI").Range("E9:E23")))

Sheets("EPI").Cells(43, 5) = Application.WorksheetFunction.Sum(Sheets("EPI").Range("F9:F23"))

End Sub

 
Postado : 07/11/2013 2:06 pm
(@depoisteconto)
Posts: 183
Reputable Member
 

Não sei se entendi certo, mas eu faria assim:

Sub Dividir()

Range("B1") = Range("A1").Value / Range("A2").Value

End Sub

Vide exemplo anexo.

At

 
Postado : 07/11/2013 2:12 pm
(@valdecirrk)
Posts: 230
Reputable Member
Topic starter
 

Mas assim da outra resposta e não a que preciso.

 
Postado : 07/11/2013 2:15 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não notei qualquer erro na conta, retorna em E43 a somatoria de F e em G43 a divisão
Talvez haja algo nos seus "numeros"

 
Postado : 07/11/2013 2:21 pm
(@valdecirrk)
Posts: 230
Reputable Member
Topic starter
 

quando finalizo os registros ele começa a somar e dividir, se eu não tiver nenhum valor nas duas colunas ou em uma delas me retorna o erro.
aqui esta os vários cálculos que ele faz.

Private Sub CommandButton13_Click()
FrmInicio.Hide
soma_EPI
soma_Equip_Eletrico
soma_Estrutura_Sinalização
soma_Máquinas_Equipamentos
soma_Movimentação_Cargas
soma_Organização_Ferramentas
soma_Produtos_Químicos
soma_Sistemas_Preventivos
soma_Trabalho_Altura
soma_Gestao
Cadastro_1
End Sub

 
Postado : 07/11/2013 2:33 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mas ai já é um principio matematico.
Se não houver valores a soma retorna Zero.
Zero dividido por qualquer valor o resultado e Zero.
Dividir qualquer valor por Zero da erro.(#Div/0!).
Então primeiro é preciso definir o que fazer nessas situações!!

 
Postado : 07/11/2013 7:40 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mas ai já é um principio matematico.
Se não houver valores a soma retorna Zero.
Zero dividido por qualquer valor o resultado e Zero.
Dividir qualquer valor por Zero da erro.(#Div/0!).
Então primeiro é preciso definir o que fazer nessas situações!!

Sómente pelo descrito aqui e lá não vai ser possivel; creio eu; ajuda-lo.A divisão é feita, porem é necessario "ver" os dados passados.
Disponibilize um modelo/exemplo do que ocorre, bem como as rotinas envolvidas , especificando o que tem e o lque espera que retorne

 
Postado : 07/11/2013 7:51 pm
(@valdecirrk)
Posts: 230
Reputable Member
Topic starter
 

Aqui esta o arquivo, se eu preencho alguns campos o resultado aparece, mas se em algumas planilhas não constar o valor, então não queria que o erro aparecesse, só porque não tem valor.
Tipo, se o resultado for dividido por zero, que não desse erro, somente calcular quando houver, para que não comprometa o restante do processo.

abraço.

 
Postado : 08/11/2013 2:54 am
(@valdecirrk)
Posts: 230
Reputable Member
Topic starter
 

Bom dia pessoal

ja consegui resolver o meu problema....rsrsrs

pensei da seguinte forma, ja que não quero que gere o erro então se a soma conter ZERO, não faz nada so mostro a soma dos valores e não faz a divisão.
Segue

If Application.WorksheetFunction.Sum(Sheets("EPI").Range("F9:F23")) = 0 Or _
Application.WorksheetFunction.Sum(Sheets("EPI").Range("E9:E23")) = 0 Then
Sheets("EPI").Cells(43, 5) = Application.WorksheetFunction.Sum _
(Sheets("EPI").Range("F9:F23"))
Else
Sheets("EPI").Cells(43, 7) = (Application.WorksheetFunction.Sum _
(Sheets("EPI").Range("F9:F23")) / Application.WorksheetFunction.Sum _
(Sheets("EPI").Range("E9:E23")))
Sheets("EPI").Cells(43, 5) = Application.WorksheetFunction.Sum _
(Sheets("EPI").Range("F9:F23"))
End If

 
Postado : 08/11/2013 4:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

 
Postado : 08/11/2013 11:12 am