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”