# Looping Through Variables ..

May 5, 2009

I was wondering if it is possible in Excel VBA to loop through variables as can be done in some other programming languages. What I want to do is something like the following:

PHP

ForĀiĀ=Ā0ĀToĀ5
xĀ=Ārnd
value[i]Ā=Āvalue[i]Ā+Āx
NextĀiĀ

In this simple example, we have 5 different variables that are incremented by a random number. This would return:

PHP

iĀ=Ā0
xĀ=Ā0.1232
value0Ā=Āvalue0Ā+Ā0.1232

iĀ=Ā1
xĀ=Ā0.3221
value1Ā=Āvalue1Ā+Ā0.3221

...Ā

Eventually I will want to remove the absolute value '5' and replace it with a cells value, but I think I know how to do that.

PHP

intNumValuesĀ=ĀRange("A1").Value
ForĀiĀ=Ā0ĀtoĀintNumValues
...Ā

This kind of code would be really helpful in designing a little application where I want the user to be able to specify the number of values they are looking at producing.

## Looping Through Worksheets - Define Variables

Oct 19, 2011

Code to loop through worksheets 1 to 3 only and perform a certain task, and how to define the variables i.e. worksheets 1 to 3 when I am not using actual sheet numbers, but tab names. (worksheet 1 to 3 is just the positionof each tab).

What i need the code to do is perform a task on the first sheet, loop to the next sheet, perform the same task, until it has done the 3rd sheet.

## Repetitive Task - Looping With Variables

Jan 17, 2014

I have a repetitive task that needs to loop effectively. The only things that change each time are the start Columns ("C:C") next moves to ("D:D"), this then continues down the different columns, until it reaches the end of the columns.

The other thing that changes is the formula initially it starts at RC[-1]&"",""&RC. Next time the numbers will be plus one, so RC[-2]&"",""&RC.

The last thing that moves is the "B1:B" & LR on the next step will move to "C1:C" & LR.

Basically a loop with variables in the loop. Is this possible? Below is the code I have begun to write but I could be writing this for ever, over and over again.

Code:
LR = Cells(Rows.Count, "A").End(xlUp).Row

Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]&"",""&RC"
Selection.AutoFill Destination:=Range("B1:B" & LR)

[Code] .......

## Looping Through Databased And Retrieving Data Based On 2 Variables

Feb 6, 2009

Another VBA problem I am having to need help with...

Andy Pope and DonkeyOte graciously helped me with the first stage here:

http://www.excelforum.com/excel-prog...-a-time-2.html

where I was trying to loop through 1000 records at a time and retrieve data from my Oracle database based on a single Field ID.

This is the code that ended up working...

## Unzip Code - Works Without Variables, Breaks With Variables...

Feb 5, 2009

Unzip Code - Works without Variables, Breaks with Variables.... This has been driving me bananas...

I have the

## Function Back Variables: Function Give Two Or More Output Variables

Jul 27, 2006

Can a Function give two or more output variables. e.g.

Sub a()
x = 5
result = Y(x)
End Sub

Function Y (x As Integer) As Integer
Dim B
B = ... * x
Y = ... * B

this will give back Y as a result. But if I want to get 2 or more output variables (let's say I need to get also B into sub) from one function, how should I do that?
I need this because function works with large matrix and I want to extract some values appeared in between.

## Defining Variables Using Variables

Apr 27, 2006

I'm trying to loop through a range in excel from access, checking where the titles (in Excel row 1) match with the fields (in a recordset in Access that is passed to the function) - and where they do, I want to dimension a variable to hold the column number - I'm not sure it's possible, but I'd be interested to know either way. The line I'm asking about is at the bottom of the code - the rest of the code is just to give context...

Sub ImportGeneric(rsImported As ADODB.Recordset, rsConfirmed As ADODB.Recordset)
Dim fd As FileDialog
Dim xl As New Excel.Application
Dim wb As Excel.Workbook
Dim ws As Worksheet
Dim iFilePicked As Integer
Dim strFilePath As String
fd.Filters.clear
fd.Filters.Add "Excel files", "*.xls"
fd.ButtonName = "Select"
iFilePicked = fd.Show
If iFilePicked = -1 Then
strFilePath = fd.SelectedItems(1)
Else ..................

## Erase Variables All The Variables Or To Set The Value Of Them To "0"

Jan 16, 2007

i have a "problem" to empty / reset my variables. I defined them as vHour1_KW2 where the "1" is from 1 to 21 and the "2" starts from 1 to 53. Now I want to erase all of this variables or to set the value of them to "0".
At moment I use following

vHour1_KW1 = 0
vHour1_KW2 = 0
...
vHour1_KW53 = 0

vHour2_KW1 = 0
vHour2_KW2 = 0
...
vHour2_KW53 = 0

until...............................

## Looping For 01 To 10

Aug 8, 2014

I know how to loop for 1 to 10.

But is it possible to loop for 01 to 10?

Like:

[Code] ......

Because I am pulling data from external aplication, so the 0 is fix in a row/column.. I will need to get the row/column for the whole "01" and not only "1".

## For Next Looping

Aug 18, 2009

I am not sure what I am doing wrong with this expression. I know the code is a little messy, sorry.

## Looping Without Using VBA

Aug 8, 2009

Is it possible to write a cell formula (not a macro) to loop through a range of cells and test for a value? Something tells me that I need to use the "Offset" function.

## Looping Through The Last Row

Feb 14, 2010

How do I continue to loop through the last row and get the values to 3 differrent text boxes?

If I remember right, I think the command is Offset, 1 to go to the right one cell correct?

Sub CommandButton1_Click()
'("PowerAnalysis").cells(Row, 3).Value = textbox1.Value
'Worksheets("PowerData").Cells(Row, 3).Value = TextBox1.Value
Set WkSht = Worksheets("PowerData")
LastRow = WkSht.Range("A" & Rows.Count).End(xlUp).Row

WkSht.Cells(Row, 1).Value = TextBox1.Value

'LastRow = r
'r = ActiveCell
'Dim r As Long
'r = ActiveCell.Row
'UserForm3.Show

'WkSht.Cells(Row, 3).Value = TextBox1.Value
UserForm3.TextBox1.Value = r

End Sub

This code is wrong, but how can I get the first three records on the last row to display in three textboxes on UserForm3 titled TextBox1, TextBox2 and TextBox3.

Norie may be right, I may not have to even think about using repaint.

## VBA Looping

May 21, 2006

I have created a spreadsheet used for timber design. The spreadsheet calculates whether a specified size of timber column will support a specified load under certain conditions.

The various conditions include, load duration, service class, strength class and limit states.

Ok at the moment the user specifies the load and length of the column, then chooses a size of timber and sets the conditions mentioned above. Once this has been done the calculations i have put together on another sheet, work out whether the size of timber can support the specified load.

It is important to know that the answer for the final strength formula of determining the strength of the column should be equal to or less than 1. If this is the case then the column is ok, if the answer is larger than 1 then the column isnt safe.

Also at various points within the calculation certain checks are required to make sure certain design values satisfy certain criteria. If they dont then a new size of timber sould be tried.

What i would like to be able to do is use a loop so that the spreadsheet will use differing sizes of timber and calculate the values that satisfy the criteria and eventually find the size of timber required. The final answer of the strength calculation should be as close to 1 as possible but not over.

## Looping In Vba

Nov 5, 2006

My code is supposed to generate figures to plot the changes in a riverbed profile with time. At time zero, there is a main subroutine that goes through a number of Subroutines and iterations before ending. At time t, I have another main subroutine which is slightly different but would go through most of the subroutines of tine zero. I want the code to go through for time t=0, display the values and then go through the other loops as well, displaying the values for each loop. I thought I knew what I was doing, but the displayed results showed reasonable results for the first (time zero), but the others were just replicas of the same thing. Is there anyway I could use variables with vectors i.e patty(j,i), where i could run the loop for i, and then do Next j.

## VBA For Looping Through Rows?

Feb 8, 2013

I have the below code which converts a range to PDF and saves it on our network drive. I would like to change my code to a loop so I don't have to do so much typing. There are 68 rows between each range.

VB:
Sheets("CPS CSR Dashboards").Range("A2:K69").ExportAsFixedFormat xlTypePDF, "G:Call Center ReportingWeeklyAgent DashboardsTemp" & [ 'CPS CSR Dashboards'!M3] & ".pdf"
Sheets("CPS CSR Dashboards").Range("A70:K137").ExportAsFixedFormat xlTypePDF, "G:Call Center ReportingWeeklyAgent DashboardsTemp" & [ 'CPS CSR Dashboards'!M71] & ".pdf"

A2:K69 is the range for Agent 1 which will be saved as as a PDF M3 is the cell which contains Agent 1's name for which the file is to be named.

A70:K137 is the range for Agent 2 which will be saved as another PDF M71 is the cell which contains Agent 2's name.

## VBA - Looping Through Different Columns

Jul 6, 2013

I am trying to code something that will loop through a given set of columns. I know that if I say "For each C in R", that would mean, looping through each cell inside the Range "R", but what I want is something like this:

VB:
Dim rzRng As range, rzSmallRng As range
Set rzRng = Union(range("A:A"), range("C:C"), range("F:F"), range("AB:AB"), range("AS:AS"))

For Each rzSmallRng In rzRng
statement here...
Next

(I have a total of 30 columns that I need to put inside that Union function) . And then loop through the range as a whole set (not though each cell of that range).

I also tried the following code:

VB:
With Union(range("A:A"), range("C:C"), range("F:F"), range("AB:AB"), range("AS:AS"))
statement here....
End With

But it ended up executing the code in Range"A:A" only.

## Looping After Every 121 Cells

Mar 19, 2014

I have to manually drag my formula for 121 cells and then change the formula by next column and/or row number.

Currently the 2 formulas I have are:

=IF(AND(\$Z\$4>="", \$AA\$4>=""),H\$6,J2456)

=OFFSET(X\$5,0,(ROWS(\$1:1)-1)*2)

After every 121 cells that I drag these formulas to, in the first formula I change from H\$7 to H\$7 then H\$7 then H\$7 and so on

In the second formula, I change from X\$5 to X\$6 then X\$7 then X\$8 and so on.And also change the ROWS from 1:121 back to 1:1

Is there a formula which I can drag and it automatically changes the column and cell reference in the 2 formulas?

## Looping Through ListObject?

Apr 11, 2014

I am looking to create a loop in a ListObject object that does calculations depending on the value of the current certain row in a column. This is the code I have so far:

[Code]....

I am having trouble with the loop; as you can see, the nested for loop will go through all the 'weight' in the column before going to the next 'grade'. I just want the loop to reference the same 'weight' that the 'grade' is on and move on. But I am not sure how to reference each 'weight' as I progress through each 'grade' in parallel.

I am aware that I can do this with regular cell references:

[Code] ......

but I am more interested in learning on how to work with the ListObject class.

## Looping Code

Apr 28, 2007

I am using the following code in a project and would like some help to loop it until either TRUE or #N/A is found in the active cell.

## Looping/end On Blank

Dec 2, 2008

so i've got a spreadsheet that i'm working on that i'm doing some automation for and i'm not sure where to go from here. i don't know too much about coding, but pick up a little here and there.

so what i have is 2 spreadsheets that i'm using to compare data and copy and paste the information found. there is a list of data in column E that i am copying and pasting into the "timestamp log" which has a macros that search for a variable in that workbook, if the variable is found the cell is copied. then "advisor info1" is activated and pasted in column H.

now i'm trying to avoid having to write the below coding for each and every cell in column E that has data to be found. is there a way to loop the process until a blank cell is found? like to have it search cell e2, e3, e4, e5... etc until it hits a cell with nothing in it? sometimes i have over 1000 cells in column E that i need to search through and trying to copy and paste out the below information 1000 times is very tedius and a waste. anyone have any ideas?

i'm not sure if i explained it clearly enough, let me know if you need a little more clarification .......

## Looping With Two Conditions

Mar 8, 2009

I have a formula in cell A1 and text in either cell B2 or C2. This text continues down the rows until there is no text in either columns B or C. I wish to copy the formula in A1 into A2 and then continue copying down column A until both cells in column B and C are empty. What is the excel VBA code?

## Looping Through Day Of Week

Mar 17, 2009

I'm trying to set up a simple macro to loop through some number of dates on a sheet and blank out fields next to every instance of Saturday and Sunday. The only problem I'm having is actually finding the values "Saturday" and "Sunday"

Given a date in this format: 01/01/2009
I can convert to "Thursday"

Problem is, the vba code still "sees" 01/01/2009

I've tried copy / paste special / paste values to no avail.
I've tried changing it via VBA (a few different methods, including strings, formats, etc) with no luck. Even tried referencing my date cells from another spreadsheet and pasting the values back in. Can't seem to get 01/01/2009 to be "Thursday"

## Looping Through A Column ..

Sep 24, 2009

I have a macro that seems to get bogged down during a replace function because sometimes there is no need to replace. I figure I need to loop this and cannot figure out how to do it.

I have the code below and need to know how to loop this ....

## Looping Put Into A Macro

Nov 2, 2009

Aloop I am trying to put into a macro. I have a variable range of data in Column C, header is in C1. I need to split the data in each row of the array using this code.

## Looping Through Frames

Jan 27, 2010

I'm wanting to loop through the first 13 Frames of a Userform and think the below code will do what I want, but I have been unable to figure out how to set cFrame.

## Looping Through Checkboxes In VBA

Nov 18, 2011

I have a worksheet that has multiple (form type) checkboxes on it, and I want to write code to loop through a specific range of them (Checkbox 26 to Checkbox 36 for instance), check if the value is true and then return the .Caption value to a message box, or ultimately a cell on another worksheet.

I can do it for all of the checkboxes on the ActiveSheet, but just can't figure out how to run through.

## Looping Through Worksheets

Oct 19, 2012

I wrote a macro to loop through all of the worksheets in a work book and print all of the sheets except the first one labeled as "BidCandidates" and the last sheet labeled as "Blank".

It works just fine. However, I want it to work even when there is no first sheet labeled as "BidCandidates" and last sheet labeled as "Blank". There will be an unknown number of sheets to print and they will all have a label starting with a number from "02" through "50". For Example "02 - Selective Demolition".

Here is the code I have written;

Sub Print_All_Analysis_Sheets()
'
' Print_All_Analysis_Sheets Macro
'
'
Application.ScreenUpdating = False
Sheets("BidCandidates").Select
ActiveSheet.Next.Select

[Code]...

## Looping Through Checkboxes

Apr 18, 2013

I don't understand why this code doesn't work:

Sub All()
Dim chk As CheckBox

For Each chk In ActiveSheet.CheckBoxes
CheckBox.Value = Checked
Next

End Sub

All I want to do is loop through all the check boxes on a sheet and check them. But the code acts as if there are no check boxes on the active sheet, I don't get any error messages it just never lands on the

"CheckBox.Value = Checked" line.

## Insert Row Is Looping?

Oct 7, 2013

I have two lookup tables with data on worksheet 2 and will be displaying the results on worksheet1. I scan the student ID card barcode and it gives me the student info, then scan the laptop barcode and it gives me it's info with a time stamp. So sorta like inventory management.

That was easy, but the next part I just cant do on my own.

What I want to happen is make Row 2 to be used only for input, so that when data is inserted it is then shifted down one row every time I add new data.

My issue is that my code is now just stuck in an infinite loop when adding a row and crashing excel. I don't even know if I am using the correct code either. Another issue I ran into is that it is copying the cells contents and the vlookup formulas which is not needed in the rows below.

My code so far(pitiful I know):

Private Sub Worksheet_Change(ByVal Target As Range)
'when data is entered in C2 only then do I want the code to activate
'My train of thought is, enter data in A2 and C2, vLookup happens, then it is to Copy Row2 contents
'If there is content is Row3, push it down one row, then paste into Row3 what was in Row 2
'Then bring back the cursor to A2 to rinse repeat
If Range("C2").Value = 0 Then Exit Sub
If Range("C2").Value >= 0 Then

[code].....

## Looping In A Formula

Nov 24, 2007

is it possible to loop in a formula like I do beneath?
The code will not run. What is wrong?

the problem is variable aa - that should be a1,a2,a3 etc.. It is no problem if I write a1 etc. in the formula. but if the loop is long I cannot write cell reference for every cell a1,a2 etc.

For k = 1 To 10
aa = Cells(k, 1)

Cells(k, 3).Value = "=KOMPLEKS(B13, 1 / (2 * pi() * aa * B14))"
Next k