This is a simplified version of an earlier, long winded post that clouded my actual question.
Can I use a variable to refer to a worksheet by its CodeName? For example, let's assume I have several worksheets, with CodeNames of mySheet1, mySheet2, mySheet3, and so on. I understand that I can refer to them directly,
mySheet1.Range(myRangeName).value = someValue
mySheet2.Range(myRangeName).value = someValue
mySheet3.Range(myRangeName).value = someValue
.
but what if I want to do this using a loop? Is it possible to preload an array of CodeNames and do it that way? I'm thinking along the lines of something like...
Dim CodeNames
CodeNames = Array( mySheet1, mySheet2, mySheet3 ...)
For x = 1 to HoweverMany
CodeNames(x).Range(myRangeName).value = someValue
Next x
The below example creates a new worksheet and tries to get the new worksheets codename. The problem is when I run the code, I can't seem to be able to pull the codename from the newly created sheet (ie Cell A1 = "" instead of "sheetx").
Sub test()Set mysht = ThisWorkbook.Worksheets.Add x = mysht.CodeName mysht.Range("A1") = xEnd Sub
Here's my Sub ArrayTest() ' ' ArrayTest Macro ' Dim Array1() As Variant, Array2() As Variant Dim R As Integer, ilR1 As Integer, iLR2 As Integer ilR1 = Cells(Rows.Count, 1).End(xlUp).Row iLR2 = Cells(Rows.Count, 7).End(xlUp).Row ReDim Array1(1 To ilR1) ReDim Array2(1 To iLR2) For R = 1 To ilR1 Array1(R) = Cells(R, 1) & Cells(R, 2) & Cells(R, 3) Next R For R = 1 To iLR2 Array2(R) = Cells(R, 7) & Cells(R, 8) & Cells(R, 9) Next R For R = 2 To UBound(Array1) If WorksheetFunction.CountIf(?????, Array1(R)) > 0 Then Cells(R, 4) = "old" Else Cells(R, 4) = "new" Next R ' End Sub
Basically, the macro concatenates the content of three columns from two different tables into two arrays. Array1 contains the current stuff and Array2, the old one. If I CountIf items from Array1 into the content of Array2, I should get what's new (count 0).
Now, ? in the code should refer to the content of Array2. How do I do that?
The errors I get are 424 object required [Array(iLR2)], 1004 method 'Range' of object '_Global' failed [Range(Array2) or Range(Array2(2), Array2(iLR2))], or type mismatched [Array2].
is it possible to refer to a cell by a variable cell number? For example suppose i want to refer to a cell on column B, by a value which is in cell C1, so the if C1 has the value 7, i would refer to cell B7, abd if it has the value 87 i would refer to cell B87.
How can I use (with or without macro) cell text to refer to different worksheets inside a formula. For example I've formula =INDEX(Mary!B9:E17...) but I wanted to write that 'Mary' or whatever sheet name to a cell in one sheet and sheet refenrence in this index-formula would change accordingly.
I inserted a Command Button ("Button1") in a Worksheet ("Sheet5"). I want to disable this button while the vba is running. How do I refer to this form control from vba?
I need a list in my form, simple "Name/Number" list (only two options) but i don't want it to refer to any cell in the worksheet. I want to input a text in a textbox and with the selection in the list above i want to have multiple choices at how to approach the text (if i input a name i want it to be different than if i input a number). All the info i came up on the web refers to lists made upon a range of cells. How can i make a list without involving ranges of cells?
I put all my named ranges in a seperate worksheet in the workbook.
On a different sheet I have all my data with references to the named ranges. But what it gives me is the cell information from the sheet on which the named range is located and not on the worksheet where I actually need the calculations to be done.
How can I make the named range refer to the cells in the worksheet in which it sits?
Worksheet 1 --------------- 1 2 3 4
Worksheet 2 -------------- I name the function Red apples RedApples =CONCATENATE($A1&"Red Apples")
Question #1 How do I make the name reference in worksheet 2 refer to the cells located in the worksheet in which i use it. In other words, when I use RedApples in Worksheet 3, it gives me what is sitting in A1 in worksheet 2 instead of in A1 on Worksheet 1.
Question #2 How do I make the name reference in Worksheet 3 keep stepping down along Column A in Worksheet 1?
At the moment, I have a project where everyone is putting work data on seperate workbooks. Each months work is placed onto another worksheet within that workbook.
The supervisor has his own workbook, that grabs data from each of the workers books. Getting the data is easy enough, however because the supervisor has barely any knowledge of computers, I would like to make it as easy to set up for future months.
Right now, data is collected in each cell using the following formula:-
='[otherusersworkbook.xls]December 2009'!$C$620
Is there a way of getting that phrase to substitute the part that says "December 2009" with whatever is put into column A on the same row?
I can get a worksheet name and index, how do I get the worksheet (Name)? Example:
I delete sheet1, copy sheet3 before sheet2, rename to sheet1 but the VBA name is Sheet4. The index number will be 1 but it is not Sheet1 in the VBA Project Explorer.
I am writing a VBA macro to update a financial workbook. 10 of the sheets within the file are re-names depending on the start of production date. So, in one file they may be CY09, CY10, CY11...and then in another CY10, CY11, CY12. I need to update the Cell L14 on the first CY page to a value on the BOM page.
I want CYXX!F12 = BOM!L14 And CYXX's code name is Sheet3411
To do this, I want to use the code name - because it is the same in all the files I have (100+).
But I cannot find enough/right Codename reference information to make this work.
I would appreciate if someone could help with this particular issue. (A little explanation of when I can and cannot use the codename would be appreciated as well. As this is something I will be maintaining for years.)
I have a Userform that allows a user to select a year eg (2007) from a listbox called yearbox where Yearbox.Value = AddYear. When the user Presses 'OK' the following code runs: ...
I care about is the line starting wks4.Cells(Di, 2) = I am trying to sum data from a variable length column in worksheet 3 and place the result in column 4 However, when I hit enter after entering the formula into =SUM() I get
Compile Error:
Expected: list separator or )
[code] Sub Macro1() Dim wks3 As Worksheet Dim wks4 As Worksheet Set wks3 = Worksheets("Sheet3")
I have a macro that compares two sheets (in a workbook that might contain 10 sheets). Currently, the user enters the names of the two sheets in two input boxes. Is there a way that the user need only to click on a sheet tab and the sheet names are used in the macro? (this would eliminate any misspellings)
I'm having difficulty using a worksheet variable with control objects on worksheets. The following code is successful at getting the value of the text in textbox txtDCN.
Public Sub test() Dim text As String text = Worksheets("Master Table").txtDCN.Value End Sub
The following code gives compile error "Method or data member not found" on the last line of code. I've searched around a bit all over the web but cannot find any examples of this same error. It's obvious that the compiler cannot figure out the reference to the text box but I cannot figure out why for the life of me.
Public Sub test() Dim ws As Worksheet Dim text As String Set ws = Worksheets("Master Table") text = ws.txtDCN.Value End Sub
I have a macro on a button click that copies and pastes the template worksheet into the same workbook on a dialy basis, i would like to rename the "template" copied file to a unique worksheet name based on a date ie 31_3 (31st march) and so on, the cell that provides the date changes on a daily basis to the next one, however when the script runs it uses the original macro recording date rather than the new one!, the changable cell is AS2.
I am trying to run some code when a worksheet is selected.
I'm doing this using a macro currently (code below), but this requires that i use a quick menu button and i would like to make it a form button and assign a macro to it (so i can distribute the file without everyone having to create a menu button).
I would like to replace (or modify) the code below to select any sheet other than the ones named "a" and "b".
Code: Sub ImportAlarms() Dim thisSheet As Worksheet Dim targetSheet As Worksheet
On Error GoTo failed
Set thisSheet = Application.ActiveSheet Set targetSheet = Sheets(TARGET_SHEET)
I'm replacing a specific sheet on a workbook with another one, but I want the users to be able to browse to a file, replace the sheet with the new one and re-establish the links on the replaced sheet with the target workbook. This macro is running out of the workbook that supplies the replacement sheet. The idea is that the user opens this workbook, runs the macro, browses to the file they need to fix and hey presto! I'm doing something stupid with my variable name, I'm sure it's syntax but I don't know what I'm doing wrong. The code is posted below.
Sub Macro1() Dim ToBeFixed ToBeFixed = Application.GetOpenFilename Workbooks.Open (ToBeFixed) Sheets("!").Visible = True Sheets("!").Select ActiveWindow.SelectedSheets.Delete.....................
I am trying to pass two variables RARD and CARD from Sheet1 'change selection' subroutine to the 'Set ARD Command button click' subroutine. The variable value remain empty and it gives me a 1004 error when I try to execute this line of code:
[Code] ....
What I am trying to do is put the text value 'ARD' in the cell on sheet1 which was the original cell I clicked on to open the userform2. To do this I click on the 'Set ARD' button on the userform2 which is then suppose to hide the userform2 and put the 'ARD' text in the selected cell on Sheet1.
I have attached the workbook for review : Therapy Tracker - Tester V2.10 - deleted logo.xlsm
I am working on a workbook which uses a large number of variables. I am trying to keep them as "local" as possible to keep it simple. Some of my variables are local to the subs they're used in. Some are global as they're used by subs in several sheets. A third type of variable is used by several subs all belonging to the same sheet. Is there a way of declaring them so they're known by all subs in that sheet, but not by every sub in the workbook?
I'm using MS Excel 2003 Pro. I need to link data from one source worksheet to a target worksheet in the same workbook when only one variable changes in the source worksheet e.g.:
A. From source worksheet:
When the data under the "Expected Date" column is set (it normally is blank)
B. Populate target worksheet with:
1. Name 2.aaaa 3.bbbb 4.cccc 5.dddd 6. expected date (the actual date that is set from the source worksheet)