Change Color Of Autoshape Based On Comparision Of Cells
Mar 7, 2008
I am atempting to do some autoshape conditional formating. I am about above average when it comes to working with Excel, and I know little to some Visual Basic. Here are the two things I am attempting to accomplish.
1. I am attempting to use VBA to change the color of a Large Pyramid Autoshape called "JanPyramid". The thought behind this is, I wish to have the Pyramid show vbGreen when it is <= my target (which in this case is a user inputed cell called "RECTARGET", so instead of using a number in my VB code I would like to have it refer to this cell in E58) I want the Pyramid to show vbRed when the total Recordables (this number is generated by using a COUNTIF function, so it counts all entrys in the table that have REC entered for its status, in this case the cell is called "RECCOUNT" and is located in I54) is > my target, E58 "RECTARGET"
2. I have already sort of gotten this to work by using values instead of using cells. But it is still is not perfect. I would prefer to use the actual cells because my targets and the actual counts can be different depending on what happens during that month. Here is the code I have in so far, it is with the values instead of it being the cells because I do not know how to make it read the cells instead of values:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("RECCOUNT")) Is Nothing Then
If IsNumeric(Target.Value) Then
If Target.Value > 0 And Target.Value <= 2 Then
ActiveSheet.Shapes("JanPyramid").Fill.BackColor.RGB = vbGreen
ElseIf Target.Value > 2 Then
ActiveSheet.Shapes("JanPyramid").Fill.ForeColor.RGB = vbRed
This code is a hybrid from this Ozgrid thread: Changing fill color of autoshapes based on cell numeric values.
I've seen examples of VBA that will colour autoshapes based on cell values. I have a map of the UK made up of autoshapes that have been edited to create a shape of each postcode area such as EX, GL, NR etc. Also I have a list of all these postcode areas and I have given them a zone number (1-7) depending where in the UK they are.
At the moment I have set the colours using the fill option so anything that is a particular zone is a certain colour (i.e. zone 2 is green).
What I would like to do is to set a zone to a colour, so the map will update all the zones with the right colours.
I need to be able to read the zone number that is assigned to a postcode area and change the relevant autoshape to the correct colour so that any postcode area can be one of 7 colours.
I can't attach a spreadsheet with my map and postcodes otherwise I would have.
Is there an easy way i can read the zone number of each postcode area in the list and update that autoshapes colour? Would the autshape need to have a name so it know which one to update or is this not possible?
When the sum of B7-D7 is less than cell (I7) I would like to change the shade of B7-D7 to orange to indicate that larger values need to be entered to equal the value of cell I7. And when the sum of these three cells does equal I7 their color should change to green. I recorded two macros to change the colors and I've run them to verify they work. But I've got something off in my simple macro below.
I want to change the fill color of all cells on my sheet, based on the value of one specific cell. In my sheet, I am using cell F1 as the trigger for the change. If the word Blue is in the cell, I want the background color of all cells to be Blue. Likewise for Red and Yellow as well. I don't believe conditional formatting can get this done, as all but the one cell (for this) will be empty.
I have attached an example file.. Basically I want the text in a range to change to red if one cell="Description".
Also, I want a cell's text to turn blue if it's corresponding data in the row says "Click on Title to Follow Link"
The example file explains it a lot better..
Thanks for the help.. Sorry if this may seem like a duplicate post but I was not able to get any of the examples I searched for to work that others have posted.. Also, maybe conditional formatting would be an option here but I could not get it to work as it will only meet the first condition that comes across thats true...
I have created a qualification tracking spreadsheet to track when qualifications are coming due. Each cell may have a different date based on when that employee initially got that qualification. I want the cell that the initial qualification date is typed in to turn "red" after 180days, "orange" after 120 days and "yellow" after 90 days. I have a formula that does close to what I need, but it changes the cell next to it in color.
That code is as follows: =AND(A1<>"",Today()>=A1+90,B1="")
I have attached the sheet, what I am trying to do. Basically columns B-E and rows 2-35 are the ones that need the formatting.
I am trying to create a formula that will change the cell color in a range of cells in the row. I want the color to change based on the information in a particular cell appearing on a different sheet. What sheet the information is on determines the color the cells change to.
Example: I have 4 sheets I am working with. We will call them A; B; C; and D. I would like the color of cells A5-I5 on sheet D to change to red when the information in cell A5 from Sheet D shows up in any cell in column A on sheet A. If the information from cell A5 sheet D appears in any cell in column A from Sheet B then the color will be yellow, etc.
I have two columns. The first one (A) contains cells that have different Fill colors. The second column (B) contains text adjacent to the colored cells. I am trying to change the color of the text in the second column (B) to the corresponding color in the adjacent cell in the first column (A). I don't think conditional formating works well in this situation. I believe the solution would be some sort of macro.
Conditional formatting. I want to change the color of a group of cells based on data in another group of cells. Example:
If cells G8 and G9 (which are merged) are between 80% and 94%, then I9,I10,I11 (which are merged) will turn Yellow. Also, under the same scenario, IF G8 and G9 is greater than 94%, then cells I9, I10, I11 will turn Red.
I have been trying to make it so that an autoshape changes colour according to the value of a particular cell but every time I run the macro the shape is black and I cannot work out why. The code is -
Private Sub CommandButton1_Click() Dim X As Integer X = Range("H5").Value With Sheets("Sheet 1").Shapes("Rectangle 1").Select Select Case X Case Is > 0: Selection.ShapeRange.Fill.ForeColor.RGB = 2 Case Is < 0: Selection.ShapeRange.Fill.ForeColor.RGB = 3 Case Else: Selection.ShapeRange.Fill.ForeColor.RGB = 1 End Select End With UserForm2.Hide End Sub
I have attached the relevant spreadsheet for which I need to alter the color of the columns based on Site number ( Sheet 1). % Mortality will be represented in the Y-Axis, and the Site numbers would be on the X-Axis. All columns (% Mortality) except one will be of the same color, and the one of a different color will indicate a specific site. As an example, site 86 is colored differently. The way I require the chart to look is shown on Sheet 1.
After reading through some great posts on Ozgrid, I managed to do this using conditional formatting (Sheet 2), but that sort of falls short because I am required to add a data table to the chart, and the parameter that is indicated by the column bars happens to appear twice in the data table.
I was wondering if this can be automated maybe using VBA, but with the possibility of simply matching the color of columns with the font color of respective entry in the data series.
I am looking for a very simple script that will achieve the following:
On the clicking of a button, Select and shade in a cell yellow, delete the yellow shading of the previous cell. The shading & selection should move up a column of cells, 1 at a time, in the following order:
From B10 to B9, then B9 to B8, B8 to B7 etc until the selection and shading is at B2. Once it is at B2 subsequent clicks will simply keep it at B2 (the top). Thus after 8 clicks the shading & selection should travel from B10 to B2, with only 1 cell being shaded yellow and selected at any one time.
and its works, but when I change the color via conditional formatting, the value is not update, I have to go to the cell, press F2 and hit enter to get the value updated, I mean, I need to do a kind of refresh to get the value of the conditinal format.
I'm trying to set up a spreadsheet to track 20 vehicles mileage, and when they are due for an oil change. I have the value of when they are next due in column D, and the actual mileage in column G. I want to have the row for each vehicle turn yellow when they are within 1,000 miles of needing an oil change, and red when they are due/overdue.
I have been trying to figure out how to change the color of a specific tab based on information being entered in cell "B9" for each sheet that the tabs represent. If there is information in cell B9 on "tab 1", I want only tab 1 to change a color. If there is no information entered in cell B9 of tab 2, then I want tab 2 to stay with its default color.
There are 34 tabs I want this to happen to, out of just more than 60 total tabs on the worksheet.
I'm trying to change the tab color based on a cell value. This I can do, but only using a Change Event with code in the Worksheet section. I would like it to update more instantly and without the need for a Change on the sheet to occur. So I was thinking a Worksheet_Activate event, or perhaps a Workbook_Activate event, but i can't get it to work.
For further info, if not confusing, the cell referenced in code below (on the Dan sheet) is filled using a user entered variable when the workbook is opened. Depending on this value, i would like the tabs to update their color accordingly and instantly, as well as the color updating if the cell B3 on the sheet is changed. Perhaps I need a Worksheet Activate & Deactivate and Workbook Activate and Deactivate?
Public sPeriod As Long Private Sub Worksheet_Change(ByVal Target As Range) sPeriod = Worksheets("Dan").Cells(2, 4).Value If Target.Count > 1 Then Exit Sub If Target.Address(False, False) = "B3" Then Select Case UCase(Target.Value) Case sPeriod - 1: ActiveSheet.Tab.Color = RGB(0, 0, 255) Case Else: ActiveSheet.Tab.Color = RGB(255, 0, 0) End Select End If End Sub
I have created an employee schedule with 26 pay periods. Each pay period has its' own worksheet for scheduling employees.
To navigate to the worksheets I created a home page on one of the worksheets and would like to create an AutoShape for navigating with a hyperlink based on the pay period which is selected in cell B3. When the autoshape is clicked the user would go to the correct pay period worksheet.
For example Home Page:
Cell B3 contains drop down list of the 26 pay periods which the user selects the proper pay period (ie. 8Jun14-21Jun14) Cell E3 is a cell reference on the sheet A1 Cell B6 contains hyperlink formula =HYPERLINK("#"&"'" & B3 & "'!" & E3) Autoshape has formula =B6
When I click on the autoshape the hyperlink does not work.
How do I change the color of a row, based on the users selection from a drop down box in that row? I have four driving types in my drop down , Towing - Town Driving - All highway - Mixed. I would like each driving type, if selected, to change the color of the entire Row of Data to a different color. I have been able to use conditional formating to change the drop down cell itself, but that is it.
In Column D I already have a listbox on every line. If the user selects "waiting payment" then the whole row needs to be highlighted red. If the user selects "arrived" then the the whole row should be green. The dropdowns are already there, but I cant get the colors to change. I have heard that conditional formatting may allow me do do this, but I'm not sure how to go about doing it.
I have a large spring-selection table, which is populated with things like "4.88 x 635" and "5.26 x 584". There are 1520 fields in the table populated with any combination of the 432 springs available for selection. The spreadsheet takes my criteria, finds out which springs it's allowed to choose from, and populates the table. It could be 20 springs, could be 30. I'm trying to get the number down to 10. The table updates when I change the criteria.
What I'm after at this point is a macro which will color-code the table based on the cell contents, so that all the "4.88 x 635" have one color and all the "5.26 x 584" have another colour. Doesn't have to be any particular colour, just so long as it's a bit different to the cells around it. how the table reacts.
The biggest spring size is "6.93 x 1727", which could be converted to a color reference, perhaps by adding up all the digits, or taking out the non-digits and dividing by 123781, I don't know I'm thinking out loud. And then just assign the cell color to that number.
Where to start a macro like this. Obviously it would use ActiveCell.Interior.ColorIndex but I can't find anything like this on the web.
We have a assigned date, a due date and a date resolved. what I would like to do is any time the date resolved is past the due date change date resolved background to Red. I was playing around with conditioning formatting but can not seem to get this right....
I have cells in range L12:BN1000 with formulas that will output a 1 or a 2.
If the output is 1, I would like the cell to color yellow if the output is 2, I would like the cell to color orange
the reason I dont want to use conditional formatting is because the use needs to be able to copy and insert rows and by doing so the use would need to manually add the new cells into the conditional format range. I would like to come up with a macro that applies this condition to a large range.
also, were do I add this macro? under sheet1? this workbook? or as a module?
Can I change the color of a cell based on my deviation from the number based above it? I am making a golf spreadsheet to base my performance off of, and I was wondering if I could make the cell change color based on my performance on the hole (different color for how many strokes above or under par). If anyone has any idea on this issue, please let me know.