Worksheet_Change Event With Named Range
Aug 17, 2006
Is it possible to use a named range as part of the Target.Address in a Worksheet_Change event? For example, if I've named cell A1 to be XYZ, can I use something like the following VBA script:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("XYZ") Then
.....
End If
End Sub
The above script obviously doesn't work. The only thing I can get to work is:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
.....
End If
End Sub
I would like to be able to use a named range so that I don't have to remember to update my VBA when I insert rows or columns in my worksheet.
View 6 Replies
ADVERTISEMENT
Dec 31, 2006
I have two workbooks that have the following
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myColor As Integer
With Target
If Intersect(.Cells, Range("v:v")) Is Nothing Then Exit Sub
If IsEmpty(.Cells) Then r.Offset(, 1).Interior.ColorIndex = xlNone: Exit Sub
If Not IsDate(.Cells) Then r.Offset(, 1).Interior.ColorIndex = xlNone: Exit Sub
Select Case Month(.Value)
Case 1: myColor = 3
Case 2: myColor = 17
Case 3: myColor = 19
Case 4: myColor = 22
Case 5: myColor = 26
Case 6: myColor = 33
Case 7: myColor = 36
Case 8: myColor = 38
Case 9: myColor = 40
Case 10: myColor = 42
Case 11: myColor = 44
Case 12: myColor = 7
I have this code in 1 sheet in one of the books (and all other sheets work fine), and the same code in all sheets in the other book. Both books work the way it's supposed to.
My question,
Is it necessary to have the Worksheet_Change event in all the sheets (all sheets act on the code the same way) or is it okay for just one sheet?
Could I encounter a problem if in only one sheet?
I just don't see why I would have to add more size with the code in all sheets if it is not necessary.
View 9 Replies
View Related
Nov 2, 2008
Bit of an odd one, but I'm sure it's probably happened before to others. I've just been sent a worksheet to redesign (an audit template) one which I'll be making use of data validation lists (Yes, No, N/A) a fair bit.
What I want to happen is that when the user selects from a list, I'll fire a Worksheet_Change event, which will then run some background calculations to set up the next questions, etc. Problem is, the event isn't firing at all. I'm using the following to test the event...
View 2 Replies
View Related
Jan 16, 2008
I wrote a simple script to show/hide certain rows based on the value of a certain cell on my worksheet (cell value chosen by drop down). When I left work last night, everything worked fine. When I returned this morning, the change event no longer appears to be firing. I'm quite certain no one else accessed the file to change the coding, so my only guesses are 1)perhaps some sort of system update was applied in the middle of the night and it messed with something or 2) aliens have blocked our technology in advance of their invasion.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address = "F1" Then
Application.EnableEvents = False
Select Case Target
Case "150"
Rows("13").EntireRow.Hidden = False
Rows("14:19").EntireRow.Hidden = True
Case "330"
Rows("14").EntireRow.Hidden = False
Rows("13").EntireRow.Hidden = True
Rows("15:19").EntireRow.Hidden = True
Case "340"
Rows("15:19").EntireRow.Hidden = False
Rows("13:14").EntireRow.Hidden = True
Case Else
Rows("13:19").EntireRow.Hidden = True
End Select
Application.EnableEvents = True
End If
End Sub
View 9 Replies
View Related
Mar 12, 2008
I'm trying to find a way to bypass a worksheet_change event. Right now, my code validates if a change has been done to a specific cell ("D13"). It works perfectly, too perfectly actually.
Here is the code I got :
First line of Module 1 :
Public bDeviation As Boolean
On Sheet1 :
Public Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim VRange As Range
Dim strName As String
Application. ScreenUpdating = False
View 4 Replies
View Related
Feb 16, 2007
I'm using the following code. Basically it formats some cells in row based on the value in the first column of the row.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer
Dim RowNr As Integer
If Not Intersect(Target, Range("A1:A65536")) Is Nothing Then
For Each cell In Target
If Target.Text = "" Then
icolor = 0
ElseIf Target.Text = "Row Loaded" Then
icolor = 4
ElseIf Left(Target.Text, 14) = "Row not loaded" Then
This works fine, except when I delete a row by clicking on the row number to highlight the row, and then right click to select delete.
The event fires for each cell in the rows, and takes ages to run.
Does anyone have any ideas on how to prevent this from happening? I tried substituting
For Each row In Target
View 9 Replies
View Related
Jul 4, 2007
I have a user who wanted a spreadsheet to highlight cells containing formulas whenever the formula was changed. (They want the ability to make changes, but want those changes highlighted. They do not want to protect cells with formulas.) I tried to accomplish this with Conditional Formatting but could not figure out a way to do it, so I turned to VBA. I wrote the following routine that is called on the Worksheet_change event:
Sub CheckFormulas(Target As Range, FormulaRange As String)
Dim CurCell As Range
For Each CurCell In Range(FormulaRange)
If Target.Address = CurCell.Address Then
Target.Interior.ColorIndex = 3
End If
Next CurCell
End Sub...................
View 2 Replies
View Related
Jul 28, 2007
In the worksheet_change event I am calling a method for performing some calculations. The method is called only if certain cells are affected. I want to know the cell values before the event gets triggered.
For eg: Lets say Cell A1: 10 Cell A2: 20 I select both A1 & A2 and click on delete. Then I want to obtain the values 10 & 20 in the method called. Is this possible? Currently If I do Cell.value it returns blank.
View 5 Replies
View Related
Dec 5, 2008
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Me.Range("R1C1")) Is Nothing Then
'do something
End If
End Sub
Now, that Private Sub works fine if you change the value of R1C1 manually or from another macro.
But if R1C1 is the cell linked to a list box, nothing will happen if you change its value by selecting different items in the list box.
View 4 Replies
View Related
Nov 7, 2006
I am using the following Selection_Change Event to show a UserForm when a cell in 1 of 31 named ranges is selected.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Dim i As Long
For i = 1 To 31
If Not Intersect(Target, Range("StatPost" & i)) Is Nothing And Target.Value = "" Then
If Target.Offset(0, -8).Value = "" Or Target.Offset(0, -7).Value = "" Or Target.Offset(0, -6).Value = "" Or Target.Offset(0, -5).Value = "" Or Target.Offset(0, -3).Value = "" Or Target.Offset(0, -2).Value = "" Or Target.Offset(0, -1).Value = "" Then....................
View 3 Replies
View Related
Mar 27, 2009
Is there a way to write a Worksheet_SelectionChange (ByVal Target As Range) event in module after creating a sheet in VBA? I constantly delete a sheet, then repopulate it with a new one that is empty, but I need to add some code that happens if they should change a particular cell. It worked when I ran it on a worksheet without refreshing, but as soon as I cleared and repopulated the sheet, it was gone. Is there a way to preserve this?
View 9 Replies
View Related
Dec 15, 2008
Working on a simple worksheet_change issue for someone, the thought came, "after this code runs" it would be good if the TargetRange changed to no longer include the rows it had run on already. This way, if you later accidentally deleted/edited a cell that already had data, it wouldn't cause the macro to run again and do the paste job again?
Anyway, here is the code original
View 11 Replies
View Related
May 15, 2009
when I use worksheet_change for something so simple to do, it prevents me from deleting cells.
When I try to delete the cell values from A2 (5) and A3 (6), they won't delete unless I delete the value on A1 (True).
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Range("A1").Value = "True" Then
Range("A2").Value = 5
Range("A3").Value = 6
Else
End If
Application.EnableEvents = True
Exit Sub
End Sub
View 9 Replies
View Related
Nov 15, 2008
I have a spreadhseet where columns I and J (range from I6 to J300) serve as input cells, off to the right, 23 columns over in AF and AG respectively I have a hidden array formula (Index, match) calculating values based on input in either column I or J and several factors embedded in reference table in the same sheet. That works fine. I want cells in columns I and J to be interdependent, in other words, input in column I drives calculations in a hidden formula and I want the value of that calculaton to display in column J (in a adjacent cell input in I6 results in display in J6), but if I input value in J then this value will drive calculation in a hidden formula and display in I (let's say I is centimeters and J is inches). I have a code that works (I set it up as a try just for few rows) but only one code section at a time, not together. If I choose column I (#9) to go first in code, values update in J, but not the other way around, if I choose column J (#10) to go first in code, values update in I, but not the other way around. What am I doing wrong, I tried Target.address case, I tried Intersect ... is nothing then etc. They all work one at a time but not together. Here is the code as it stands now
View 3 Replies
View Related
May 26, 2009
I am trying to look through a multiple selection of cells (in Target range) and compare to see if these are Integer. I am failing to be able to cylce through the selected cells and check their value. I am sure it is VB 101 issue... but I am lost at cracking it.
View 2 Replies
View Related
Aug 16, 2014
Let's say you have a named range, Rng1, which consists of cells A1 & A2. In vba how would you report back what, if any, named range the following cells resides:
Code] .....
here are multiple named ranges so using intersect is not feasible. Essentially, through code, I will be given a range and I need to determine if that range if part of a named range.
View 5 Replies
View Related
Jun 2, 2006
I need to create a named range on multiple sheets with the same named range & i cant figure out how to do this. EG :- I want to create a named range called "_SubUnitRows" on sheet1 starting from "A1:A50" & other named range again called "_SubUnitRows" on Sheet2 starting from "A1:A25" ...
View 2 Replies
View Related
Jul 19, 2013
I'm trying to make my named ranges remember the values of the last active cells used within another named range. The purpose of this is to make my charts dynamically change dependant on two criteria selected. My spreadsheet currently updates itself as and when I change the active cell within a single named range, dynamically changing the chart data by using Lookup based on the active cells value. However I want to get away from having several charts showing, I would like to have a single chart which dynamically changes based on a second selection. So the first selection is for a department (Facility) which changes the chart data relevant to that department, the second selection is to dynamically change the chart shown for the pre selected department.
Picture2.jpg
Using the following code when updating just one criteria with several charts
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(ActiveCell, [MeasureType]) Is Nothing Then
[valMeasurePicked] = ActiveCell.Value [code].....
which works fine but I'm not sure how to add a second selection criteria because my code uses Activecell. I thought that the VBA needed to set the last used value of a range as a variable and therefore allow the second criteria to be selected but am not sure how to put it into practice.
View 2 Replies
View Related
Oct 25, 2009
if I can use a named criteria as well as a named range. In essence what I am looking to do is count certain cells that meet the criteria in a certain named named range,
View 9 Replies
View Related
Mar 14, 2013
Merge two columns into one list in excel
I would like to combine List1 and List2 into a 3rd named range called List3. I was wondering if this were possible without using any additional cells/columns (i.e. I don't want to use Column C like in the example shown in the link above).
Here's the formula from the example:
Code:
=IFERROR(INDEX(List1,ROWS(C1:$C$1)),IFERROR(INDEX(List2,ROWS(C1:$C$1)-ROWS(List1)),""))
I've played around with it, but could not come with any that worked.
View 3 Replies
View Related
Mar 27, 2007
I want a macro in one worksheet to run when any cell (in a given range)on a different worksheet (dataentry) is updated. I have spent along time trying to make it work with no avail. The code I use to start my macro is as follows.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count <> 1 Then Exit Sub
If Target(1, 1).Address = "dataentry!H5:IV72" Then
If Not Intersect(Target(1, 1), Range("dataentry!H5:IV72")) Is Nothing Then
On Error Resume Next
Application.EnableEvents = False
View 7 Replies
View Related
Sep 4, 2007
I have read post re this question but have not been able to answer my problem. I get the error message 'Application defined or object defined error' when running the code below. I should indicate the range counter currently indicated about 6,200 rows that this code will work on and the individual range names in the list of 6,200 rows are spread over at least 20 worksheets.
The code appears to be running but after some time it stops on the line of code 'Range(Cells(i, 1).Value) = Cells(i, 2)'.
Sub PopulateWithImportData()
Dim counter As Integer
counter = Sheets("Imported Data").Range("Counter")
Application. ScreenUpdating = False
Application.Calculation = xlCalculationManual
Worksheets("imported data").Select
Range("a1").Select
i = 1
Do Until i = counter
Range(Cells(i, 1).Value) = Cells(i, 2)
i = i + 1
Loop
View 8 Replies
View Related
Aug 6, 2013
I need method, using a button, that looks at a cell--say EO2, for example--, looks back on a master worksheet at a specified row and range for a match, then looks at the information from a specified range below the matching cell (The information in this column will either be blank or have an "X" in the cell), and then those rows that do not have an "X" will be hidden in the corresponding rows in the working worksheet. Therefore, if at any time the value in "EO2" ever changes, then it will automatically find a new match and repopulate and hide information as before. About 130 columns will have its own button so that a "query" can be made that depends on the information in a particular cell in that column.
The master worksheet now has matrix of 287 rows and 58 columns. Each row is for an operating procedure and each column shows a job code. An "X" in a coordinate cell for a column/row shows whether that job code is responsible for knowing that operating procedure. So, on the working sheet, an employee's primary job code is given underneath his or her name. When the button is pushed, all the operating procedures not required for a given person will be hidden and only the required ones will remain visible--grouped, if you will. Qualification dates will be easier to see now that the information is consolidated. Whenever someone transfers to a new position, a new code will be inputed on the working sheet. When the button is pushed, a new grouping will result. Any operating instructions that overlap will still have qualification dates, so that information will not need to be transcribed.
View 9 Replies
View Related
Apr 3, 2008
Im sorting a dynamic range as mentioned in this Sorting a Named Range. My range is called drWarningTypes and is defined as:
=OFFSET(DataSource!$A$2,0,0, COUNTA(DataSource!$A:$A)-1,1)
When there is only one cell in the range, then running the following sort function includes A1 also in the search (and also adjoining columns).....
View 9 Replies
View Related
Apr 10, 2013
I am trying to calculate some averages. What I have is 3 columns of data in A, B, C, also the "tasks" in A are in named ranges ex: "Award Contract" is a named range - "Task_Award" and "Confirm Updates" is a named range - "Task_Updates". I've attached a sample excel sheet.
I'd like to be able to create a macro to evaluate column A, and for every row in range "Task_Award", give me the average of the corresponding cells in column C and put it in the same range of cells in column B , then, for every row in "Task_Confirm" then give me the average of the same range of cells in column C and place the result in the same range of cells in column B. This is my very first post so I hope I am doing this correctly. I have 77 of these task ranges to evaluate and it will take a long time to do it manually. I'm thinking of a loop function.
View 1 Replies
View Related
Jul 15, 2014
I have a column of data that keeps getting new information in it. what i need is a named range that i can use for a chart, first point in the named range will be the first value in the column, second point will be avg. of point 1 and 2, then 3rd point will be avg. of 1,2,3 etc.
View 1 Replies
View Related
Aug 10, 2008
I have a named range that expands and contracts based upon the amount of data that is in some column. Call it AllData_UsedRange.
I have another named range that actually refers to a range. Call it AllData.
Column A
Row2 56
Row3 44
Row4 65
AllData is a named range that refers to the range A2:A65536
AllData_UsedRange refers to A2:A4 by way of this formula.
=OFFSET(AllData,0,0,COUNTA(AllData))
How to I obtain an address of AllData_UsedRange in VBA code?
These do not work...
ThisWorkbook.Names("AllData_UsedRange").RefersToRange.Address
Evaluate(ThisWorkbook.Names("AllData_UsedRange"))
View 9 Replies
View Related
Sep 8, 2006
I am trying to create a graph for a range of data that updates monthly (adding an extra month each time). I wanted the graph source data to update automatically each time the data is refreshed so used an OFFSET formula to identify a named range. I then point the graph to the named range as the source data.
When I enter the range as the source data the graph picks it up. However, when I re-enter the source data option on the graph it has converted the named range into a cell written range (ie. replaces "=QUALITY" with "='Front page'!$B$7:$J$10" - which therefore will not update when the range increases.
View 4 Replies
View Related
Aug 25, 2006
I know that I can return the value of a defined name range, the address, and even the value of the define name, but if you are given a range address, how do you find its corresponding defined name in code?
View 4 Replies
View Related
Sep 13, 2007
My searches have not produced anything that I could apply to this situation.
I'm trying to write VBA that would:
1. Search a Workbook for Dynamic Ranges.
2. When a Dynamic Range is found the code would:
A. Determine the current coordinates for the range.
B. Change the "Refers To" value From "=OFFSET...." To "=Worksheet_Name $Column$Row:$Column$Row"
3. Save Changes.
4. Close File.
My apologies but I have very little experience in writing VBA. I understand about variables, arguments, and IF/THEN but just enough to use functions within Excel.
View 9 Replies
View Related