In Excel VBA if then else statement is used to check for conditions and execute tasks if true and if conditions are not met then a set of codes will be done.

if(condition) Then

Your code comes here if above condition is true

Elseif(2nd condition) Then

Your code comes here if above 2nd condition is true

Else

Your code comes here if both conditions are **not true**

EndIF

In this example, we are going to check whether a number is greater than 10 or equal to 10 or less than 10.

Sub simpleif()

If (Range("A1").Value < 10) Then

Range("B1").Value = "Less than 10"

ElseIf (Range("A1").Value = 10) Then

Range("B1").Value = "Equal to 10"

Else

Range("B1").Value = "Greater than 10"

End If

End
Sub

Hope by now you might have got some clarity, we will see another example with some complexity.

if(condition) AND NOT (condition) Then

Your code executes here if above both conditions are true

Elseif(condition) AND NOT (condition) Then

Your code executes here if above both 2nd conditions are true

Else

Your code
comes here if both conditions are **not true**

EndIF

In this example, we are going to assign grades for ten students. The complexity in here is, we will use for loop assign grades at one click.

if(condition) AND (condition) Then

Your code executes here if above both conditions are true

Elseif(condition) AND (condition) Then

Your code executes here if above both 2nd conditions are true

Else

Your code comes here
if both conditions are **not true**

EndIF

Dim i As Integer

For i = 2 To 11 //as our marks are starting from 2nd row to 11th we loop from 2 To 11

If (Range("B" & i).Value >= 90) Then

Range("C" & i).Value = "A+"

ElseIf (Range("B" & i).Value >=
80) And (Range("B" & i).Value <= 89) Then

Range("C" & i).Value = "A"

ElseIf (Range("B" & i).Value >= 70) And (Range("B" & i).Value <= 79) Then

Range("C" & i).Value = "B+"

ElseIf (Range("B"
& i).Value >= 60) And (Range("B" & i).Value <= 69) Then

Range("C" & i).Value = "B"

ElseIf (Range("B" & i).Value >= 50) And (Range("B" & i).Value <= 59) Then

Range("C" & i).Value
= "C+"

ElseIf (Range("B" & i).Value >= 40) And (Range("B" & i).Value <= 49) Then

Range("C" & i).Value = "C"

ElseIf (Range("B" & i).Value >= 35) And (Range("B" & i).Value <= 39) Then

Range("C"
& i).Value = "D"

ElseIf (Range("B" & i).Value <= 35) Then

Range("C" & i).Value = "F"

End If

Next i

Unlike we saw in AND operator, this operator executes tasks if either one condition satisfies among two or more. Let us see the syntax for the OR operator.

if(condition) OR (condition) Then

Your code executes here if above both conditions are true

Elseif(condition) OR (condition) Then

Your code executes here if above both 2nd conditions are true

Else

Your code comes here
if both conditions are **not true**

EndIF

For Example, There are two salesperson A and B, their target is to sell at least 33 products or they must have sold more than the other salesperson ( A > B) or (B > A).

Dim i As Integer

For i = 2 To 11

If (Range("B" & i).Value > Range("C" & i).Value) Or (Range("B2").Value >= 33) Then

Range("D" & i).Value = "Target Achieved"

Else

Range("D" & i).Value = "Not
Achieved"

End If

Next i

In Day 1 A has sold more than B and the second condition is they should sell at least 33 products. As A satisfies either one condition so it prints as Target Achieved".

In Day 2 A has not achieved the target of 33 and also did not sell greater than B. So in this case he met neither the two targets.

Hope you liked this article, if so please share it with your friends.

Most Popular