I'm trying to write a code which would place formulas in the row just below the my range (normally a matrix of figures) to sum the column in that just above that. Here's what I've got so far but it doesn't work.
how to count unique records, and I can only find formulas, and not code. This code works fine, and I get the right "actual" count, but I need to change it to a unique values count.
Sub CountEmployees() lastrow = ActiveSheet.UsedRange.Rows.Count For t = lastrow To 2 Step -1 If Cells(t, 8).Value <> "" And Cells(t, 8).Offset(2, 4).Value <> "" Then Cells(t, 12).Select Selection.Offset(1, 0).Select Range(Selection, Selection.End(xlDown)).Select List = Selection.Cells.Count ' Need to make this unique count Cells(t, 9).Value = List End If Next t End Sub
I now can open all the workbooks in a filefolder and look at each of the sheets in each file and build an array to consolidate a range from one sheet to another. The problem is that the one range is hardcoded in the script (because that is what I was using to test.) I have written code to build an array of 66 rows and 5 columns that are stored in a worksheet in a named range.
how arrays work so I can use both of these arrays - one array ConsolParams(), to identify the range in the Sources part of the consolidate statement. The other array MyArray() stores the sheet names. Actually ConsolParams also stores "to" range now hardcoded as "J11".
Option Explicit
Private Sub cbConsolidateToRollups_Click() Dim MyArray() As Variant Dim Source As Variant Dim sToPath As String Dim sRollUpWB As String Dim sRollUpToWs As String Dim sRollUpFromWS As String Dim sShtName As String Dim sSourceWS As String Dim nShts As Integer Dim lCount As Long Dim wbResults As Workbook Dim wbCodeBook As Workbook Dim WB As Workbook Dim i As Integer Dim r, c, p As Integer Dim ConsolParams(5) As Variant Dim CostType, RangeName, FromRange, TargetCell, TargetReport Application. ScreenUpdating = False Application.DisplayAlerts = False Application.EnableEvents = False.......................
I have a range which will change in size & in content, & I want this to be a Named Range at whatever size it is.
Reason I want to is because I want to make a Validation List with this dynamic range. I also want a Validation list which lists the content of 2 or more dynamic ranges which may or may not be on the same worksheet - is this possible?
i.e. First dynamic range: called "Milestones" at A11 Second dynamic range: called "Activities" at A25 & make a Validation list that will list content of both
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.
I was hoping that then when i go to data > Pivot table and it asks for the range i could put =Data but it tells me that the range is invalid. I have attached a copy at the bottom.
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.
I have a range of data that will grow as the days of the month pass but I need to run calculations on this range. The data is 13 columns wide but the number of rows will increase daily. I remember using a formula in the Define Range that would automatically take into account new additions using the OFFSET function but cannot for the life of me think how exactly to do it.
Line of code that will Select a Named Range in this case I have Named a CELL "DataSummary" Need to use that named range by selecting 30 columns and 54 rows.
I have been working on part of the code for my spreadsheet and it works fine in the spreadsheet “Databaseform” however when I copied the code to my master spreadsheet “Paul_PartLocDBCombo” it does not work, I get the error:
Method ‘ range’ of object ‘_worksheet’ failed The code is then highlighted in yellow, the code is: Set rng = wksPartsData.Range("a1", Range("a65536").End(xlUp))
Meaning this part is incorrect but I don’t know why? To work it: go to Databaseform and press start. Enter 7mm in the product field and press find all. It will then return all the matching results in the userform. Its this I want to try and achieve on the other spreadsheet when the button find label is pressed.
I have this macro named ABC to bring the name ranges to another worksheet. The name ranges are already saved in the workbook with the below name range. I used "***" so that this formular can go to the last cell that has "***" on A column and it worked untill someone typed "(xxx)" and the range now stops right before the "(xxx)"
I wonder if there is a way to Sum the total of a Dynamic Range so that the summary will be presented in the upper Cell of the summed column?
(please see the attached picture).
The reason is to anable FREEZING of the first row (display the totals all the time even when scrolling down) as the list will get very long after a while.
I am looking to sum a dynamic range and can't quite figure it out. The data expands down rows every week, and I want the sum formula (the final row) at the bottom to include the newly updated rows. I can't dynamically name the numbers to be summed because the dynamic named range will include the sum number and create a circular reference. For example:
5 4 3 2 14
the bottom row (14) is the sum. Next week, my numbers are
5 4 3 2 5 19
I have a macro that will automatically put the sum formula in the correct row and column, but can't quite figure out the formula.
I have column A fill with dates and column B with customer code. I'm looking to count the number of time the customer code (column B) is repeating but ONLY in previous year. Meaning that the count range must be adapt for each customer code. Will a countifs is able to work with this request?
I am working with loans, and I'm trying to program a routine that adds every installment a client owes, so I can know the total amount owed, depending on how many unpaid installments she has. Let say for a client I have every installment in column A (rows 1 to 5), and in column B, I want to add them all. The output should be
Cell B1: "sum(A1:A5)" Cell B2: "sum(A2:A5)" Cell B3: "sum(A3:A5)"... and so forth
Since I have many loans, I need a dinamic routine to that sums every installment, where amount of installments vary from client to client. My proposal is (adding from the last installment to the first one):
VB: months = 4 'an example For j = 0 To months - 1 initial_row = ActiveCell.Row 'because I run this several times. In this example I am in row 18[code]....
For some reason this is not working, and what I see in Excel after running it is: SUM('AJ18':'AJ18'), which doesn't work.
1. I have a worksheet with subtotal and total row above all columns
I currently use SUBTOTAL(9, A6:A6000) and SUM(A6:A6000)
however the no of rows is dynamic based on imported data so I want the range end (i.e. A6000) to also be dynamic i.e. refer to the last cell with data in the column.
Something like SUBTOTAL(9, A6:LastCell in A)
2. I also use SUMPRODUCT to do calculations
e.g. SUMPRODUCT (($B$6:$B$6000 = "ABC") * ($A$6:$A$6000))
again how can I make the sumproduct dynamically use all rows to the last active row.
3. I have tried just setting the second part of the range reference to a very large number but am worried that this slows down the calculation. Does it?
e.g. SUMPRODUCT(($B$6:$B$100000 = "ABC") * ($A$6:$A$100000))
I'm trying to find a way to perform Vlookups against a dynamic range of data, where the number of rows/values in Col B is always subject to change.
The way that the workbook is structured is as follows:
Sheet1: Except for Cols A & B, this is a blank sheet. This is the sheet in which the vlookup values will need to fall into based on the number found in its' Column B
Sheet2: The sheet that contains the data that will be passed into Sheet1 via vlookup, and all of its Columns contain data.
So, basically, Sheet1 is a shell that needs to be filled with data copied over from Sheet2 based on vlookups against Col B.
The vlookups will need to be shifted back 1 column.
And examples of how the Vlookups need to work is:The value in Sheet2 [Col E], needs to get passed into Sheet1 [Col D]Along those lines:
The value in Sheet2 [Col F], needs to get passed into Sheet1 [Col E]
The value in Sheet2 [Col G], needs to get passed into Sheet1 [Col F]so on and so forth
So basically, all of the values passed into Sheet1 from Sheet2 need to be shifted back by 1 column until we reach the last Col (Col M in this file).
Where
The value in Sheet2 [Col M], needs to get passed into Sheet1 [Col L]
The number of columns will remain fixed, but again the number rows will vary week to week in both of the two sheets, so I would need to have a way of creating a Vlookup through VBA that accounts for the dynamic range in Col B.
Hope someone can help with this - Please can I have some VB code that will select all rows in columns H2:M2, when I don't know each time where the last row will be? I'm guessing this is a dynamic range, but not sure!
This will be an easy on for you seasoned programmers. I want to find the last used cell in a column, and then select an offset range based on the location of that cell. For example, in the attached workbook, I have a button at the top that activates a macro to add a new week to my time sheet. This simply copies the contents of the current week, and adds it at the bottom.
What I would like to do next is clear the data from the newly added cells, leaving the formulas in columns A, B, C, J and K. In the attached example, I have just added Week 3. I would now want to locate the last used cell in Column C, (C24), then offset from that cell to select the range D18:I24, and clear the contents of those cells.
I'm needing some code that will program-magically do the following interactive stuff:
1. Go to the first cell that will be the start of my range, say "D1".
2. While holding down the "shift" key, press "end", then "down". All of the desired cells will then have been selected. [side note: how can I detect that the "d2" cell is not blank - I don't really want 65K cells in my range?]
3. Next, "Insert", "Name", "Define", then typein the desired name range ("schoolList", here) and press enter.
This would seem to be a case for using the macro recorder but the range will always come out hard-coded, rather than the cells that would be selected using an "end" "down" selection.
I am filtering a list in Column H and depending on what criteria I filter on I need to be able to select only what I have actually filtered for. I am using the code below to find the lower right corner of my range that I'm trying to select and this works great.