Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Excel Basics
Advanced Excel
Formulas
Charts
VBA
Excel Dashboards
Project Mgmt.
Power Pivot
Downloads
TrainingProducts
Podcast
Subscribe
This article is part of our VBA Crash Course. Please read the rest of the articles in this series by
clicking below links.
1.
2.
3.
4.
5.
In part 2 of our VBA Crash Course, we are going to learn what Variables, Conditions & Loops
are and how to use them in Excel VBA.
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
Now, you are not the kind of boss who micro-manages & nitpicks. So you dont really note down sale for
every store. Instead, as you call the store manager, you just mentally update the total. So first store says
$2,300 your total is 2300. Second manger says $4,000, the total now will be 6300. So on.
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
someNumber As Integer
otherNumber As Double
someText As String
aCondition As Boolean
myCells As Range
myChart As Chart
myList(1 To 10) As String
anotherList() As Variant
What it does?
someNumber = 2
someText = Hello
someNumber = someNumber + 1
myList(2) = 812
activeCell.Value = someNumber
someNumber = activeCell.Value
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
end if
Would just note down the sales figures if the sales are between 500 and 5000.
Would run for 24 times and each time repeats the same 4 steps (call, ask, do, hang-up).
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
cell.value = cell.value + 1
Next cell
would run 10 times and increment each of the cells values by 1 in the range A1:A10.
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
By now, you are already familiar with various parts of this code. So I will just explain the alien portions.
Dim statements: These lines declare the variables we are going to use. Notice the different data
types (Integer, Range etc.) we have used for various types of data we want to hold.
For Each store In Range(C7:C30): This line is going to tell excel that for each store (ie cell) in
the range C7:C30, we need to repeat the instructions all the way until Next Store. In our case, Excel
is going to repeat for 24 times.
store.Value = InputBox(Sales for Store & storeNum): This line shows a small box to you
and asks for your input. You can enter a number and press OK (or enter). Whatever value you enter
will be placed in current stores cell.
reason = InputBox(Why are the sales deviated?, Reason for Deviation, Reason for
Deviation): This line shows a box to user with a title and default value (Reason for deviation).
store.Offset(,1).value = reason: This statement places the reason for sales deviation in to the cell
right to the store sales. Offset(,1) does the trick here.
12
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
Written by Chandoo
Tags: downloads, for each, for loop, if then statement, inputbox,
Learn Excel, macros, no-nl, screencasts, using Ranges, vba classes
Home: Chandoo.org Main Page
? Doubt: Ask an Excel Question
Veronica says:
August 30, 2011 at 11:08 am
Nice
good explanation simple yet effective. The example was also not complicated..Looking
forward for next part !
Reply
maria says:
February 5, 2013 at 7:10 am
the download file is infected
virus
Reply
Chandoo says:
February 5, 2013 at 8:15 am
@Maria.. this file is perfectly alright. I think you have something else in your computer that
is causing the trouble.
Reply
Hui... says:
February 5, 2013 at 11:08 am
@Maria
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
Reply
2.
NickDJ says:
August 30, 2011 at 11:28 pm
Nice example Chandoo! Im looking forward to joining VBA Class; these examples are such a great
teaser! I have a big project at the office Im looking to automate so I cant wait to save the time
Reply
3.
4.
Dave says:
August 31, 2011 at 7:27 am
Excellent tutorial with clear explanations of the variables etc.
I would only add some emphasis on the importance of using the
comment lines to track what the code is doing.
This helps a lot if you need to modify it later, or if someone else needs to follow it up after you have
lost the job!
I tend to be rather verbose myself due to short term memory problems
Reply
5.
David says:
August 31, 2011 at 8:27 am
Chandoo, I know its only a sample, but why didnt you indent your code? Makes it easier to read,
especially when youre using conditionals and loops.
I use Smart Indenter (http://www.oaltd.co.uk/indenter/default.htm) to auto-format my code for me.
So far no problems in Excel, and I also use it in MS Project modules and forms as well. Saves me the
headache of trying to format everything by hand.
And ditto to Daves comments: Early on in my career I didnt understand the importance of
commenting, and after having to go back and revise and add new features to old code Im kicking
myself for not commenting as much as I should have.
Reply
6.
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
One small error to your notice In the downloadable file Store Number 5 is repeated 7 times. I
hope you can change it an re-upload the file.
Regards,
Ravi.
Reply
7.
mike says:
August 31, 2011 at 6:32 pm
Great work, omg ive always struggled to understand dim, loops and all but this is a wicked example!
KEEP IT COMING
Reply
8.
Guy says:
August 31, 2011 at 10:59 pm
Excellent examples to illustrate what variables/conditions/loops are and what functions they serve.
Good mental model.
Reply
9. How to use Cells, Ranges & Other Objects in Excel VBA [VBA Crash Course - Part 3 of 5] |
Chandoo.org - Learn Microsoft Excel Online says:
September 2, 2011 at 8:49 am
[] Understanding Variables, Conditions & Loops in VBA []
Reply
10.
Reply
11. Putting It All Together Our First VBA Application [Part 4 of 5 - Excel VBA Crash Course]
| Chandoo.org - Learn Microsoft Excel Online says:
September 6, 2011 at 9:47 am
[] Understanding Variables, Conditions & Loops in VBA []
Reply
12.
rizzy says:
December 7, 2011 at 12:32 pm
hi,
I have to create a Powerpoint whoes headline should be populated from the column of the XL sheet.
Is this do able? if so could you please guide me. I actually do testing and take test evidence and store
it in the PPT as slides,now i want to populate the step of test from the headline of every slide into the
XL sheet which stores the Test script or from the test script to the PPT headline. which one is
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
Amy says:
February 8, 2012 at 9:51 pm
Hello,
I read your site daily. It is awesome. I need a VBA macro that will cycle through the options in a
combo box (which you taught me to create), and print the dashboard for each sales manager in the
combo box. Then stop looping. Any chance you can help? Thanks!
Best,
Amy
Reply
14.
Shanmugam says:
May 17, 2012 at 2:47 pm
Good and thanks,
Reply
15.
Siva says:
June 17, 2012 at 10:43 am
Great Tutorial its very useful.
Thanks,
siva
Reply
16.
17.
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
ActiveSheet.PivotTables(PivotTable156).PivotFields(POS).CurrentPage = _
(POSc.Value)
Sheets(Denials by Catg).Select
ActiveSheet.PivotTables(PivotTable1).PivotFields(POS).ClearAllFilters
ActiveSheet.PivotTables(PivotTable1).PivotFields(POS).CurrentPage = _
(POSc.Value)
Sheets(Top25 Reasons).Select
ActiveSheet.PivotTables(PivotTable2).PivotFields(POS).ClearAllFilters
ActiveSheet.PivotTables(PivotTable2).PivotFields(POS).CurrentPage = _
(POSc.Value)
ActiveWorkbook.SaveAs Filename:= _
H:\Service Payor Mix\Denials FYTD & (POSc.Value) & .xlsx, FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False, ConflictResolution:=True
Sheets(Top25 Reasons).Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(A1).Select
Sheets(Denials by Catg).Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(A1).Select
Sheets(DirMgr Resp).Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(A1).Select
Sheets(data).Select
Cells.Select
Selection.ClearContents
Sheets(data).Select
ActiveWindow.SelectedSheets.Visible = False
Sheets(DirMgr Resp).Select
ActiveWorkbook.SaveAs Filename:= _
I:\Denials\Denials FYTD & (POSc.Value) & .xls, FileFormat:= _
xlExcel8, Password:=, WriteResPassword:=, ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWorkbook.SendForReview _
Recipients:=(eMailID.Value), _
Subject:=Please review your report: Denials FYTD., _
ShowMessage:=False, _
IncludeAttachment:=True
ActiveWindow.Close
Application.DisplayAlerts = True
Next
Next
End Sub
The above code runs, but does not do what I want it to do, i.e., useeach variable in the range,
POSc, as the pivot table fieldselection POS to create a unique report for each persons eMailID.
Thank you,
http://chandoo.org/wp/2011/08/30/variables-conditions-loops-in-vba/[8/12/2015 3:58:13 PM]
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
Mark
Reply
18.
Reply
Hui... says:
October 11, 2012 at 1:16 pm
Abdul
Try the following:
Function Tax(TI As Double) As Double
If TI <= 150000 Then
Tax = 0
ElseIf TI <= 450000 Then
Tax = 0.15 * (TI - 150000)
Else
Tax = 45000
End If
If TI > 450000 And TI <= 750000 Then
Tax = Tax + (TI - 450000) * 0.2
ElseIf TI > 750000 Then
Tax = Tax + 60000
End If
If TI > 750000 Then
Tax = Tax + (TI - 750000) * 0.3
End If
End Function
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
20.
Rakesh says:
November 6, 2012 at 3:55 am
how is the dollar symbol automatically coming up ???
Reply
RavanReturn says:
July 8, 2013 at 10:40 am
For doing this you need to select you all sheet by pressing ctrl+a.
After that you need to press ctrl+1 at your left side and in the last whenever you will put
numberic figure in that sheet $ symbol autometically shown at the end of figure.
Reply
RavanReturn says:
July 8, 2013 at 10:46 am
SORRY BEFORE YOUR LAST STEP I WAS FORGOTTEN TO TELL YOU THAT WHEN YOU PRESSED
CTRL+1 YOU NEED TO SELECT CURRENCY AND AFTER THAT OK
NOW TRY AGAIN
Reply
21.
Steve says:
February 26, 2013 at 9:11 pm
It would have been much more benefitical to have a step by step tutorial to have us create this actual
example from start to finish.
Reply
22.
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
Reply
23.
24.
Sagar says:
June 28, 2013 at 1:24 pm
Hi Chandoo,
Im new to VBA and this example was marvelous. Very simple and made lot of sense in ur
explaination. Would surely go through all the other examples. It was excellent.
Thanks a ton.
Reply
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
25.
26.
27.
Steve says:
September 17, 2013 at 6:16 am
Hi Chandoo,
I use Excel spreadsheet a lot and find writing some basic logic statements that will generate a result
for me. For example, in the above example of yours (i.e. 25 stores reporting revenues) I can do that
in Excel spreadsheet using =IF(.).
My question is, how do I convert my knowledge of =IF() into VBA? Where do I start when I have
a different scenario and thus a different =IF() logic?
I am not technical, and am only learning VBA from your tutorials (just finished lesson 1
your site is very helpful. Great Job!
Reply
28.
John says:
September 18, 2013 at 7:06 pm
Chandoo,
Your example spreadsheet does not work in Win.8.
message when I try to save the spreadsheet: Compatability Check; loss of functionality
; and btw,
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
Reply
29.
Saad says:
December 15, 2013 at 9:35 am
how to learn easily coding/programming in VBA in excel which sources is useful
Reply
30.
Saad says:
December 15, 2013 at 9:36 am
Also logic use in VBA and how are we better in vba
Reply
Hui... says:
December 16, 2013 at 5:10 am
@Saad
Programming or making a Model in Excel is effectively the same thing
It is purely the format of the environment and the syntax of the language that you are working
in that is different
You break a problem down into logical steps
where each step or group of steps represents generally a physical or data flow component from
real life
Variables are simply cells (in the Excel Model) or Variables (in VBA) that can hold a value or
string
eg:
In Excel
A1= 10 Sales of Apples
A2= 20 sales of Bananas
A3= A1+A2
=30 Total sales
In VBA
Dim Sales_of_Apples as Double
Dim Sales_of_Bananas as Double
Dim Total_Sales as Double
Sales_of_Apples = 10
Sales_of_Bananas = 20
Total_Sales = Sales_of_Apples + Sales_of_Bananas
=30 Total sales
VBA has a number of tools that allow more effective decision making and repetitive functions or
loops to be performed a lot simpler than can be done using Excel
To learn,
1. Start with small problems and slowly get bigger by introducing new functionality and steps to
your VBA
2. Look at other peoples solutions to problems and ask how/why they did what they did
3. Read a book on VBA, They typically walk you through from the basic steps to advanced steps
in a logical sequence
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
Reply
31.
Kamlesh says:
January 18, 2014 at 7:15 am
Hi Chandoo,
Very good basic understing of VBA and Macro. However I am not clear how this programe will
simulate the Macro.. I am not clear, whether program will run the excel or excel data will create the
programme..? please clarify.
Reply
32.
Eric says:
February 11, 2014 at 3:10 am
Hi,
I was able to go run the macro on my own and it worked. I notice the macro does not store the
values to excel, is this expected? Is there a way I can do this?
Thanks,
Eric
Reply
33.
Naveed says:
March 1, 2014 at 7:19 am
Excellent tutorials Chandoo. I am new to VBA. I was wondering if you want to add another question,
like What is the store number? before putting in the associated sales value, how do you do it?
Reply
34.
Splinkey says:
September 10, 2014 at 3:57 pm
Noob Alert!
Am I the only one who is having an issue with this example.
When i copy this code into VBA for a blank sheet and ensure that the range C7:C30 is as shown in
the Gif
Store NumberSales for the dayReason for Deviation
1
2
3
4
5
6
7
8
when I enter a value for store 1 in the input box, excel overwrites the store number with the value
ive just entered, rather than writing it in the Sales for the Day column and if there is a reason for
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
Splinkey says:
September 10, 2014 at 4:00 pm
When I say it sort of worked. I mean that it does now correctly write the value to the Sales
for the Day column, but now asks for reason for each store?
Thanks
Reply
35.
36.
Anurag says:
October 12, 2014 at 1:39 pm
Great work dude!
VBA simplified!!!
Look forward to get more free stuff here
Reply
37.
Ravi says:
October 22, 2014 at 4:10 am
What change would I need to make in the code if I want the popup box to abort itself if I press the
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
cancel button.
Reply
38.
mithun says:
November 27, 2014 at 4:49 am
Dear chandoo team the article is awesome but I need more clarification how I delete blank row within
data & special character.
Reply
39.
subramanya says:
February 19, 2015 at 9:00 am
Hi any body can tell me how to generate a mentor report of many students one by one with the help
of vba code.pls give me the code.
Reply
40.
Vivaan says:
July 25, 2015 at 6:53 am
Respected Sir,
Its really Helpful but as i coming from Telugu Medium Back Ground i am unable to understand
completely so if possible if you provide it Telugu Language also it is very help full to the persons like
me..
Thanks& Regards
Vivaan Kumar
Reply
41.
42.
Justin says:
August 5, 2015 at 8:10 pm
Chandoo you are the man
Reply
Leave a Reply
Name (required)
Mail (will not be published) (required)
Website
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
Submit Comment
Name:
Email:
Submit
Meet Chandoo
At Chandoo.org, I have one goal, "to make you awesome in excel and charting". This blog is started
in 2007 and today has 450+ articles and tutorials on using excel, making better charts. Read more.
Connect:
7,521
.
Follow
,
Chandoo.org
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
New to Excel?
1. 100 Excel Tips & Tricks
2. Excel Pivot Tables - Tutorial
3. 51 Excel Formulas in Plain English
4. VLOOKUP Formula for Dummies
5. Free Excel Chart Templates
Advanced Excel Tricks
1.
2.
3.
4.
5.
Understanding Variables, Conditions & Loops in Excel VBA - A Demo Application using VBA [Part 2 of 5] | Chandoo.org - Learn Microsoft Excel Online
Recently on Chandoo.org
VLOOKUP the last value
Make bar charts in original order of data for improved readability [charting tip]
Declutter your reports by showing icon only
Use shapes to enhance your Excel charts [tip]
Remove duplicate combinations in your data [quick tip]
Chandoo.org Podcast
Latest Episode:
Project
Management
Excel
Podcast
Templates