VBA – Combinação de If com And, Or e Not

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on August 18, 2023

Este artigo demonstrará como usar a instrução If do VBA com And, Or e Not

Quando usamos uma instrução IF no Excel VBA, a instrução executará uma linha de código se a condição que estiver sendo testada for verdadeira

  • Podemos usar as instruções AND e OR em conjunto com as instruções IF para testar mais de uma condição e direcionar o código de acordo.
  • Também podemos usar uma instrução NOT com uma instrução IF para verificar se a condição NÃO é verdadeira – basicamente é o inverso da instrução IF quando usada sozinha.

IF…AND

Podemos usar a combinação IF…AND de operadores lógicos quando quisermos testar mais de uma condição em que todas as condições precisam ser verdadeiras para que a próxima linha de código seja executada

Por exemplo, considere a planilha a seguir

projecao lucro

Para verificar se o lucro é superior a R$ 5.000, podemos executar a macro a seguir

Sub VerificarLucro()
 If Range("C5") >= 10000 And Range("C6") < 5000 Then
     MsgBox "Lucro de R$ 5.000 obtido!"
 Else
     Msgbox "Lucro não obtido!"
 End If
End Sub

Essa macro verificará se a célula C5 é maior ou igual a R$ 10.000 E verificará se a célula B6 é menor que R$ 5.000. Se essas condições forem AMBAS verdadeiras, a caixa de mensagem será exibida

lucro foi obtido

 

Se alterarmos a macro para verificar se C5 é apenas maior que R$ 10.000, o lucro não será obtido!

verificar lucro

IF… OR

Podemos usar a combinação IF…OR de operadores lógicos quando quisermos testar mais de uma condição em que apenas uma das condições precisa ser verdadeira para que a próxima linha de código seja executada

O formato para isso é quase idêntico ao do exemplo IF…AND acima

Sub VerificarLucro()
 If Range("C5") > 10000 Or Range("C6") < 5000 Then
     MsgBox "Lucro de R$ 5.000 obtido!"
 Else
     Msgbox "Lucro não obtido!"
 End If
End Sub

Entretanto, com essa macro, como estamos usando uma instrução IF …OR, somente uma das condições precisa ser verdadeira

verificar-lucro-or-identacao

IF NOT…

IF…NOT altera a instrução IF – ela verificará se a condição NÃO é verdadeira em vez de verificar se a condição é verdadeira

Sub VerificarLucro()
If NOT Range("C5")< 10000 Or Range("C6") < 5000 Then
     MsgBox "Lucro de R$ 5.000 obtido!" 
Else
     Msgbox "Lucro não obtido!" 
End If
End Sub

No exemplo acima, a instrução IF está verificando se o valor em C5 NÃO é menor que 10.000

Portanto, esta linha de código

IF Range("C5") > 10000

e esta linha de código

IF NOT Range("C5") < 10000

estão testando a mesma coisa!

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA