VBA™ para Excel™ 5: If Then Else

(Ver o anterior)

O comando If também testa uma condição. A diferença é que ele só passa pela condição uma vez, e dá uma instrução para o caso da condição ser falsa. A construção é a seguinte:

If <condição> Then
Comando 1
Comando 2
Else
Comando 3
Comando 4
End If

Exemplo: precisamos obter a média de execução de trabalhos em fase de finalização (pelo menos 50% do trabalho executado) e a média de trabalhos em fase inicial (menos de 50% do trabalho executado). Uma solução é a seguinte:

Sub MediaTrabalhosExecutados()

Dim exec As Double
Dim somaex As Double
Dim somanaoex As Double
Dim N As Integer
Dim lin As Integer
Dim Nex As Integer
Dim NNex As Integer
Dim mediaex As Double
Dim mediaNex As Double

N = Cells(1, 3)
”informa manualmente o número de projetos em andamento.
‘é possível fazer automaticamente, explicaremos em breve como.

lin = 1
‘não existe linha zero, essa instrução é fundamental!

somaex = 0
somanaoex = 0
Nex = 0
NNex = 0
‘zeramos todas as variáveis para não carregar erros de execuções anteriores

Do While lin <= N
exec = Cells(lin, 2)
If exec >= 0.5 Then
somaex = somaex + exec
Nex = Nex + 1
Else
somanaoex = somanaoex + exec
NNex = NNex + 1
End If

lin = lin + 1
‘passa para a linha de baixo

Loop
‘volta para o teste de condição do “Do While”

mediaex = somaex / Nex
Cells(1, 4) = mediaex
‘apresenta a média dos executados na célula D1

mediaNex = somanaoex / NNex
Cells(1, 5) = mediaNex
‘apresenta a média dos não executados em E1

End Sub

Lembre-se: se algo não funciona direito, confira o Debug manualmente (pelo menu pull down no topo da página) ou pela tecla F8.

Você também pode fazer outro teste lógico no “Else”, o que facilita muito em relação à função “Se” (“If”) do Excel. A construção é a seguinte:

If <Condição 1> Then
COMANDO A
Elseif <Condição 2>
COMANDO B
Else
COMANDO C
End If

Até a próxima!

3 comentários em “VBA™ para Excel™ 5: If Then Else

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.