Custom Function To Clear Value Of Every Cell Above It Until It Reaches One With Color Orange
Mar 6, 2014
How would you write a custom function that you could plug in a cell that would do the following.
If the value in the cell is greater than 0, traverse up that column to clear the values until it reaches the cell in that column that has been colored orange.
My macro works fine but I'm interested in seeing if I can speed it up. What I'm doing is starting at the bottom and comparing it with the row above and if they match in font color it will fill the top with orange and delete the bottom. This works but usually takes several minutes.
Public Sub ADMINCompareList() Dim varTest1, varTest2 Dim lng As Long, i As Integer, iTest As Integer Application. ScreenUpdating = False Worksheets("ADMIN").Activate For lng = ActiveSheet.UsedRange.Rows.Count To 2 Step -1 If Not Range("M" & lng).Font.Color <> Range("M" & lng - 1).Font.Color Then Goto newrow End If varTest1 = Intersect(Range("J:W"), Rows(lng)) varTest2 = Intersect(Range("J:W"), Rows(lng - 1)) For i = 1 To 14....................................
I have this spreadsheet with tons of vba coding. The intent of the spreadsheet is to track invoices as it goes through the approval process. The part that is giving me issues is the first and seventh column. The seventh column is actually a formula that returns how many days between the invoice due date and today’s date. The coding works fine, with one small glitch. Once the dates have been entered, the first column (which contains the color-coding) stops changing colors. What it should do is anything with 0 or less days remaining should show red, between 1 to 10 days, show yellow and anything above 10 days, show green.
So if I enter an invoice with 11 days remaining to pay, it will show green in the first column, but when I open the spreadsheet tomorrow, it remains green, even though it should show yellow. What I want it to do is refresh every time it is opened, or every day, which ever is easier. There are reasons that we cannot use conditional formatting, one of them being that we want to expand the color coding system to more than 3 colors soon, but I want to get this working correctly first.
This is what I have. I cannot attach the spreadsheet because it contains confidential information.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim h As Integer Dim i As Integer Dim j As Integer Dim lastRow As String Dim fRowValue As String Dim gRowValue As String Dim mRowValue As String Dim rRowValue As String Dim uRowValue As String Dim paidCheck As String Dim stringAnswer As String Dim testAnswer As String Dim testDate As String
I would like to be able to change the color of a cell in V4:AB31 and have the formula in AM10:AM13 automatically calculate the new result. As it is now the user has to press Ctrl ALT f9 for the formula to recalculate.
Basically i want to use a UDF to count cells in a range of a certain colour.
But i want to make it easy for the user to be able to change the colour the function counts, so i thought i could ask them to colour the cell in which the function is written.
Is there a way to tell the function to pick up the Interior.ColorIndex of the cell it is written in?
I'm trying to create a user-defined function, but the function needs to know what cell it has been placed in. I want to use this cell reference to get some other offset values. I can easily find out offset values based on the ActiveCell, but not for those offset values based on where the UDF is actually placed, which could be almost anywhere on the worksheet.
I understand the specification of a Function procedure does not provide for it to change the contents of cells. However, I have the need/preference to be able to change cell data by using a custom function (instead of a Sub) because of its ease of use and execution of multiple what-if scenarios - displayed jointly.
Is there a way around this specification/limitation - any way? Are there different techniques (standard or non-standard) to achieve thisr goal?
How does one pick up the data contained in a worksheet cell (say B5) and use it in the vba code of a custom function without passing the cell as an arguement
I saw there were codes to sum or count cells that have a specified Fill Color http://www.ozgrid.com/VBA/sum-count-cells-by-color.htm
However it says the changing of a cells fill color will not cause the Custom Function to recalculate, I really need to recalculate the data if there are any changes in the selected range
I am performing a lookup using the populare user defined function nlookup, which does not take a lookuparray argument to find lookup values. But I only want to return lookup values that fall into a certain array. To accomplish this, I figured out that I need a way to specify a condition of the type "if cell address of lookup value falls within range"
It should be possible if I find a way to return the cell address of the nlookup value, but as nlookup is not limited by a lookuparray argument, so I was not able to use the address/index/match that come up in similar questions.
When a task is completed I want the row wher it is in to be placed to another sheet(Archief). When in column F the value is changed to 'FIN' the row(A5 till K5 in the file I attached) has to be placed to the sheet 'Archief' below the last completed task.
I'm trying to come up with a way that will populate a table after each cell reaches a certain value.
My first column has rows with the total time required to perform a certain operation. The columns after that, represent operators that should be picking up a certain amount of tasks that do not exceed a set time.
Let's assume that the first row (total operation) has a total of 550 sec. The second column (1st operator) should assign a a value of no more than 200 sec. The third column (2nd operator) another 200 and the fourth column (3rd operator) another 150. So as to create a spill over effect. The second row has a different operator with a different time. Let's say 300. These tasks should be picked up by a fourth operator with a value of 200 and then a fifth with 100. All in all I would like the table to populate as below.
the code below works fine except for the fact that it takes FOREVER to complete as it has to loop through almost 2000 rows... How to optimize this code so the macro stops as soon as it encounters an empty cell? There is currently only 50 entries in the database, but with time it will exceed 1000 entries and therefore i can't simply say Range("H2:H50").
Code: If OptionButton1.Value = True Then 'Show all Car Cases Sheets("User-defined Database").Activate For Each cell In Range("H2:H2000")
I have the word department followed by the department code in column A in an excel spreadsheet ie Department 50. Then say after 30 lines it may say Department 51 and so on. I want to copy down the cell containing the text "Department 50" in coulmn A until it reaches the word "Department",I then want it to copy down that cell ie "Department 51" until it reaches the word department again and so on. How I can do this?
Cell I5 has the sum of cells A5:H5. Every time the value of cell I5 reaches the next million, I'd like for the date that it reaches the next million to be displayed in J5.
Cell B2 - this is a set figure which is the initial base figure - currently set to 43 Cell C2 - This subtracts Cell B2 figure (which is 43) from Cell E34 [=SUM(B2-E34)] Cell E34 - Is a cumulative total of 4 cells [=SUM(E4,E12,E19,E26)] and displays the total. Cell D2 is a set figure of 49
The formula I am looking for is once C2 reaches zero, I need C2 to remain displaying zero and the remaining figure to be deducted from D2 and displayed in that cell so C2 figure would descend from 43 until it reaches zero. but would then start decreasing D2 whilst C2 would remain static at zero and carry that the remaining figure to D2 which would be deducted from the starting total of 49 and display the figure.
how to use an IF statement if the cell color is a certain color? Using conditional formatting, cell A1 is either blank, light yellow, or red. Now, if A1 is light yellow, I want the value in A1=3, if not then the value =5. The formula would look something like:
A brief rundown on what I am trying to create. My family and I have a NFL football game we do every year to see who can correctly guess the most winners over the course of the season and then the ultimate winner receives a prize at the end of the season. After years of doing this manually, I decided to try and put my Excel skills to use and create a more "automated" worksheet.
After some heavy research, I was able to successfully create a user defined VBA which would calculate a "win" every time a cell is highlighted (in my case the winning team's name). For example, I highlight New England Patriots and when the formula calculates each person receives 1 in their win column.
However, I have now reached a problem I failed to think of. The formula does not take into consideration the picks everyone is going to make. Not everyone is going to select the winning team, so the current formula I have is giving credit for every highlight. Is there a way to add an if statement to this? For example, if person A selected New England Patriots and it's highlighted then give 1, if not give 0?
I know it's usually hard to base a formula off a cell color.
For some reason, I cannot attach the spreadsheet I am currently using. For a brief overview, cell M1 contains the color which I would use to highlight the cells in the range A2:H17. This formula is in cells B21 - B27.
The VBA which I input was:
Function CountCcolor(range_data As range, criteria As range) As Long Dim datax As range Dim xcolor As Longxcolor = criteria.Interior.ColorIndexFor Each datax In range_data If datax.Interior.ColorIndex = xcolor Then CountCcolor = CountCcolor + 1 End IfNext dataxEnd Function
Where the picks which are made should be logged. Whether each person gets a separate color and the VBA is based on that, or like I alluded to above if there is an X here and it's highlighted or something.
I have a excel file wherein background color as well as conditional formatting background color is used. However, since printout consumes huge ink for those sheets, i want that before print the code will clear all the background color (done through Fill color & conditional formatting color) and after the print activity, restore those color. the colors are given to faciliate data entry and better presentation.i have recorded the same but background is not restored when I run the code And also sometimes the code doesnot start printing.
I am not looking into a VBA solution for this one and want to keep it simple. I want to enter a basic IF function/formula to make the color of a cell yellow if the condition is true.
Here is where I am stuck/what I am putting inside the cell:
I'm trying to create a simple VBA function in Excel so that I can sort and calculate results based on various conditions. I can get everything to work except changing the color of the cell where the output is placed. Here is what I have so far:
Function nameOfMyFunction(arguments) If conditions Then nameOfMyFunction = "No GRP" ActiveCell.Font.Color = RGB(255,0,0) End If
I'm sure that its something simple, but I've spent long enough on my own trying to figure it out and nothing seems to work.
how to clear contents and change colour index of cells.
This is for a booking system. The current VB codes allows bookings to be made by entering a reference number, dates of bookings and room type and bed type. When the VB codes are executed, the cells corresponding to the details entered earlier, would fill the booking table with the reference number and change the colour fill (e.g. yellow) to indicate that the slots are booked. Please refer to attached sample.
However, I do not know how to delete the booking. I would like to assign a cell for user to enter the reference number that needs to be deleted. So when the reference number is entered into that cell, user could execute a function which will clear the contents and change the colour index to none for that particular booking with that reference number(s).
In the attached spreadsheet you can see I have a chart with three columns. In the third column, I've inserted a conditional formatting formula so that any value between 90% and 94% will be highlighted in orange. What I'd like to do, based on the results in the third column which I've already formatted, is have the other two columns in the same rows highlighted in orange as well. For instance, you see that the 92.30% is highlighted in the third column because it is a value between 90% and 94% per my formula. When that is true, I would also like the 56.02% and the $4,100 (the two cells to its left) highlighted in the same color. I'm not sure how to accomplish this.