I need a piece of VBA code to assign to an Excel form that determines the maximum value of a subset of one column whose cognate rows in an adjoining column satisfy a particular value.
Sub do_it() Dim x As Range Set x = Columns(4).F ind("*test*", lookat:=xlWhole) If x Is Nothing Then GoTo 999 r = x.Row Cells(r, 1) = Cells(r, 1) & " (W)" 999 End Sub
I need the above code to continue down column 4 and add the " (W)" to the entire column. The code stop when it finds the first match.
deletes a row if it finds a specified value in a specified column (in this instance, "NB" in column E). However, it is very slow and some end users are complaining about the amount of time it takes to run. Here's what I'm using at the moment:
We can clearly see that we have a match in rows 2 and 1 columns A and B, but I am getting #NA. I have sorted the columns A-Z as well. I have also tried formatting the columns different ways and I still get #NA.
I need to conditionally format column B if it finds a match in A.
I have a Macro that finds in Column F duplicates and adds an Alpha Character (A-Z) to the last right position in the filed.(1-12 Alpha/Numeric) .
It's set to check all rows until a specific number of rows are reached. The current code does this until intCount and intRow equals 1500. The number of rows vary in each file.
I am limiting choices in a certain cell to a list via data validation (using data validation, allow - list and pointing to the source). I want to limit the next set of choices in the next column (in this example in Column C) for the user based on the choice made in the adjoining cell. For example to keep it simple I will use the following: if the user selected "Fruit" in B1, then the options in C1 would only show "Oranges","Apples", "Pears". If however the user selected "Veg" it would only show "Cucumber", "Lettuce", "Spinach", "Radishes" in the drop down in column C. I can put a prefix in front of the column C data validation list if that is needed to narrow down e.g. FR-oranges, FR-apples etc.
A B C 1 Fruit Oranges 2 Veg Lettuce 3
Data Validation source for Column B (H2:H4) Fruit Veg Nuts
Data Validation for Column C: (I2:I10) Oranges Apples Pears Cucumber Lettuce Spinach Radishes Almonds Peanuts
Need a macro that finds the "X" in column A and moves it to the next row. Also when "X" is already at the last row (row 11 in my example) the next move would place the "X" at the first row (row 2). Looping I believe is the correct term. I have attached a simple spreadsheet example
I have a sub where I pass in a 1200 row by 8 column named range. Inside the sub I want to create a single column, 1200 row range. I also pass in which column I want to use of the 8 in the big range. So I pass in a number between 1 and 8. I create a new range, but i am not sure how to reference a particular column. I am trying to avoid looping.
I have a workbook of data that I created a pivot table with. From there I need to rank each value of the NES, column C, within the corresponding Reporting Structure, column A. The table that I created will be update with data on a monthly basis and I don't want to have to redo the rankings every month and just have it refresh.
I've got a table on a worksheet (daylies) with daily data, dates in A6, A7, A8, ..., various data in columns B, C, D, ... .
Now I would like to make a subset table on a separate worksheet (weeklies) with just weekly snapshots, i.e.,
snapshot from daylies off row 6 on row 2 of weeklies, snapshot from daylies off row 13 on row 3 of weeklies, snapshot from daylies off row 20 on row 4 of weeklies etc.
Is this possible or do I have to use the sledge hammer technique of copy and paste?
I'm facing a problem wherein i have two tables A& B.
Table A has two columns and 40834 records(rows).first column is userid and second column is activeyn with respective values (0 or 1) for each userid
Table B userid column is a subset of Table A and has two columns and 411 records(rows).first columns is userid and second column is activeyn with respective values (0 or 1) for each userid.
Now I want to get activeyn value from table A of all the 411 records(userid's) in Table B.
I have a list that kind of looks like this. I sorted it by date, then by location, and then by time. I need to find the earliest item in one location on a given day and display as a list.
I am trying to e-mail a portion of a spreadsheet that I have. My approach is the following: I save a copy in a temporary folder, open that copy, remove all the sheets that I don't need to send out, save it (same name as the e-mail subject), and then e-mail as an attachment.
The current approach does not remove the macros and references though. I use the following to remove the macros and references:
I have a set of data that can be divided into sub-sets. I've attached the sheet of data. There are 5 sub-sets and each of these has 5 sub-sets. The sets are defined by the Portfolio and End columns.
So, the 25 sub-sets look like: 10 INTL 20 INTL 30 INTL 40 INTL 50 INTL
10 LCG 20 LCG 30 LCG ...
I'm wondering if there is a way to write a formula in cell N10 that basically pulls in '10' and 'INTL' and finds the correlation on only that sub-set of data. So I guess I want a formula that returns a range such that =correl(Range1, Range2) will work. Also, the length of the ranges will vary, so trying to write an INDIRECT(ADDRESS... will not work. I tried an array-formula in cell N10, but it didn't work. I also included my expected output. in M18:O24.
I know I can do this in other ways, but I really want to learn if there is a way I can do this with 1 formula that I can just drag down. I guess its more of a learning opportunity than something that needs to get done.
I've got a list of employees with their division and a bunch of other data in each row. I want to copy each and every row to another sheet based on the division. _______________________________ ID | Name | Division | Other 4 | Joe | South | up 5 | James | South | over 8 | Jim | North | down 9 | John | East | left 14 | Jerry | East | right
Assuming "ID" is A1 and the list is sorted by Division, I need some code to accomplish my goal. I know C/C++ so I understand the principles of programming but I'm just learning the VBA syntax. First thought is to loop through each row moving them individually but then I have to worry about putting it in an open row on the other sheet. Then I thought about finding the first row that contains the target division and, since the data is sorted by division, select each subsequent row and copy the entire selection at once to avoid fumbling around in the destination sheet. Hopefully someone out there can make sense of this and help out. Please let me know if I need to elaborate.
I'm trying to insert two rows in a subset of worksheets in a workbook by defining a range in a worksheet and loop through the worksheets in that range, but the code will only run on the active worksheet.
I would get the End of day bhavcopy from the exchange which is a .csv file. The first column contains the column heads like name, open price etc. and the first column. Now I have to extract the names and the corresponding column values from this list by referring to a notepad that contains the ticker names to be extracted, place in another workbook and save that file.
I'm trying to insert two rows in a subset of worksheets in a workbook by defining a range in a worksheet and loop through the worksheets in that range, but the code will only run on the active worksheet.
Sub StatePIPData() Dim sheet_name As Range For Each sheet_name In Sheets("WS").Range("A:A") If sheet_name.Value = "" Then
I have a sheet of data that is imported from an external database. Depending on which report gets imported, the column count and column location will vary. However, the headers for the columns I need to work with are constant, therefore I create a named range for all columns, and reference the ranges as I work with the data and avoid hard-coded cell references. Therefore, the ranges are one cell wide, with up to 2000+ rows.
Here's my problem. I need to reference a sub-set of a named range, to get the min of the subset. I've searched this board and others, but can't find an example of this method. The code is within a loop, and the range subset location is determined by a count on another named range.
The data involves Tasks and Subtasks. Each task can have multiple subtasks, and each subtask has it's own start and end dates. I'm trying to determine the earliest start date and the latest end date for each individual Task so I can determine the total duration for the Task.
Here's the code that determines the cell range. This code is working.
d2 = WorksheetFunction.CountIf(Range("ASR"), Range("ASR").Cells(y, 1).Value) ' count number of tasks in this ASR, store in d2
The code that I can't figure out is below. The compiler can't figure out what I'm trying to do. (Neither can I!!)
d3 = WorksheetFunction.Min("Planned_Start_Date").Cells(y, 1), Cells(y + d2 - 1, 1).Value) ' Get the min Planned Start Date for this ASR
In english: Look in the Planned_Start_Date named range, and more specifically a certain subset of that range, and return the minimum date found.
I've tried several ways, none of which will compile. I realize the above code is way off; I include it to show how lost I really am!
Slightly off-topic: I'm fairly new to VBA, and am expected to create executive dashboards with the data. I've purchased Excel 2003 Power Programming with VBA and Excel Charts (both Walkenbach); Excel Programming 2nd Edition; Excel Edition of Using Visual Basic for Applications; and Dashboard Reporting with Excel, Kyd. These are all useful books, but I think they expect me to have a better understanding than I have.
I have a huge list of data with numbers in cells. each number also has a corresponding percentage in the next cell over. In some cases, some of the numbers appear twice with differentiating percentages in the cells. What I am trying to do is automatically highlight and delete the duplicate number with the lower of the two percentages. See the below example.
2069091% 2069088%
As per above, I would want to delete the duplicate number with the 88% since it is the lower of the two percentages of that number. I have almost 2000 cells and have been going through manually deleting the lower of the two percentages for the duplicate numbers.
I've got four tables with negative and positive values and want to determine the largest magnitude of a subset of four values within those four tables. In other words if the largest magnitude is negative I want the negative value of the four subsets or vise-versa.
I've tried the following but got an error stating it was too long:
So what I have is a large list of items, and each item has the price of the product, and a product type.
What I want to do is find the median price for each specific product type, using a formula, without having to sort or filter my large list of products.
I will do my best to explain but just in case I have attached a worksheet to make things easier. I have a list of a few thousand products with data on each product. When I run through a series of cuts, I get a subset list and want to be able to calculated a weighted average by somehow saying to do a weighted average (and/or count, and/or average, etc.) on the characteristics of only the products in the subset.
I'm practicing my VBA and can't get this practice code to work, the syntax looks good but all it does is set the current cell to 23. and I want it to keep going up the column until it find a cell with any value and then change it to say 23. if the value is empty it should keep going up.
Sub chngevalue()
If ActiveCell.Value Is Nothing Then
ActiveCell.Offset(-1, 0).Select Else ActiveCell = 23 End If
End Sub
I did check the internet and my reference books and wasn't able to find a clear reason.
I have a macro that needs to walk down a list of values and when it finds breaks in the values, it will insert a formula for a calculation. The problem I'm having is getting the code to loop correctly until it finally finds the value "End" when it should stop (when I play around with the code, sometimes I can get it to continue the loop, but it blows past "End" and then it experiences an error because it can't end.
Sheets("Master").Select Range("B1").Select ActiveCell.Offset(1, 0).Select AssetIDStartRange = ActiveCell.Address X = 0 Do ActiveCell.Offset(1, 0).Select X = X + 1 Loop Until ActiveCell.Value "" SortCriteriaName = ActiveCell.Value ActiveCell.Offset(-1, 1).Select ActiveCell.Formula = "=SUMIF($B13:$B5000," & """" & SortCriteriaName & """" & ",$H$13:$H$5000)" ActiveCell.Offset(0, -1).Select
If ActiveCell.Value "End" Then....................