Notifications
Clear all

PROBLEMA COM IF

5 Posts
2 Usuários
0 Reactions
729 Visualizações
(@paiva)
Posts: 65
Trusted Member
Topic starter
 

Problema muito simples, um mero IF. O Excel não está acessando o "Else", já o troquei também por

ElseIf (pcit >= 30) Then (no primeiro caso)
ElseIf (pcit >= 40) Then (no segundo caso)

Mas não está dando certo

troquei o tipo da variável pcit para Currency e Double, e nada também.

Alguém?

FUNÇÃO

http://i.imgur.com/hTmnYpe.png

RESULTADO
http://i.imgur.com/rRakoQ7.png

 
Postado : 08/02/2013 7:04 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Paiva, em relação à IF deve-se levar em consideração a precedencia, o registro satisfizer a primeira condição, as demais não são avaliadas. Então se um dado for maior do que 40, ele sempre será maior do que trinta, portanto sómente a primeira parte é vista.
Voce colocou doi2 elseif, entendo que o primeiro esteja ok. Voce pode utilizar:
Elseif pcit >= 30 and pcit >= 40 then
ou ainda inverter a ordem:
ElseIf (pcit >= 40) Then
ElseIf (pcit >= 30) Then

 
Postado : 08/02/2013 7:25 pm
(@paiva)
Posts: 65
Trusted Member
Topic starter
 

Oi Reinaldo, isso que você disse eu sei, ainda não entendi onde errei, você olhou com calma a função? é um if dentro do outro. Se for jogo de PC ele acessa um dos if's e se de video game outro if. Eu acho que você não olhou com calma a função.

 
Postado : 08/02/2013 9:58 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Na realiadade olhei com calma sim e entendi, porem veja que "ElseIf (pcit >= 30) Then (no primeiro caso); ElseIf (pcit >= 40) Then (no segundo caso)"
Concorda comigo que tudo que for maior que 40 ElseIf (pcit >= 40), automaticamente tambem e maior do que 30 ElseIf (pcit >= 30); portanto se iniciar o teste pelo maior:
ElseIf (pcit >= 40 -->primeiro caso), os itens entre 30 e 39 não serão contemplado."Sobrando" então para a segunda ElseIf (pcit >= 30 segundo caso).
Porem é preferivel utilizar o "se o valor estiver entre", porem aqui cometi um equivoco (pra não dizer erro):
Pode ser Elseif pcit>=30 and pict < 40 then (primeiro caso) Elseif pcit >=40 (segundo caso)

 
Postado : 09/02/2013 7:08 am
(@paiva)
Posts: 65
Trusted Member
Topic starter
 

Concorda comigo que matematicamente 20 < pcit < 30, irá compreender o resultado nesse intervalo? O problema é a falta de um & (ou AND no VBA), como você disse (pcit <20) AND (pcit < 30) no primeiro caso. Obrigado.

 
Postado : 09/02/2013 1:11 pm