Excel 2010 :: VBA To Change Form Control Checkbox Background Color When Checked
Nov 22, 2013
I have an Excel 2010 workbook with many worksheets using hundreds of Form Control (not ActiveX) checkboxes. I need a bit of VBA to change Checkbox background color of each checkbox whenever the user checks the box. I assume this needs to be a click event? I don't even know the Checkbox property name I need to change I'm learning VBA as quick as I can
I have a multi-worksheet workbook that has many forms control checkboxes throughout it. I'm looking for some VBA that will change the background (fill) color of ALL the checkbox when it is checked (True). I've seen code for a single checkbox, but not multiple/all boxes. I know just enough VBA to be dangerous, but I'm up to learning anything new.
I am creating a main worksheet (Legend) in which information will be entered and then populate to other areas (worksheets) within the workbook. I would like to create a print macro - that will run and print all the worksheets that we have selected on the "legend" page. These worksheets would have been selected by ticking a check box.
My question is how to associate a check box to a worksheet? For example - the second worksheet is named " Schedule A" 3rd "Schedule B" and so on.
- The check boxes will be name schedule A, Schedule B and so on. - I would like to associate (link) the checkbox Schedule A with the Worksheet of the same name. Then when this checkbox is selected, and the print macro runs it will print the worksheets that are selected.
My problem is I cannot copy from a Form Control drop down box, and I need to do this for ~10 drop down boxes in about 200 xls files. The files follow a template so the drop down button Inputs are uniform. Here is some more detail:
I’m building an Access Database so that our data (currently in many, many Excel Spreadsheets) can be efficiently queried. The old system was that when asset data was collected, the data would be entered into an Excel spreadsheet, using a Template. So for example:
Project A1234
Name Main Street Pipe High Street Pipe
Ref No. 12345 12346
Installation date 22/08/13 19/07/12
X Coordinate 55667 99212
Y Coordinate 77889 12364
We have hundreds of these files, but I managed to get all the files in one folder and Paste and Transpose the data from the relevant Cell Ranges in each file (using a VB sub) into ONE summary sheet. Success; or so I thought.
Unfortunately for one generation of the template (people changed them slightly every year), the template had people enter information into Drop Down Menus. Not a problem when they’re associated with a cell, but these were free floating Form Controls.. so you can’t actually click and copy from them, or call them in VB as you would a specific cell.. afaik.
So my issue is how can I extract the data from those Form Buttons? I’ll try and provide as much info as I can:
Firstly I tried to find some sort of identifier for each Form Button. The dropdowns are called Combo Boxes, (Developer tab > Insert > Combo Box (Form Control) ), and when you select them (by right clicking) and hit the View Code button in Developer Tab > Controls the following shows up in VB.
Sub DropDown44_Change()
End Sub
I’m guessing that the number is related to the button so that’s one useful thing, an identifier of sorts. There’s no actual code there though really from what I can see.. My problem is I have no idea how to extract from DropDown44!
The range of values in the drop down comes from a separate sheet where there’s just a list of the values. There aren’t any cells linked to the drop downs though. If I enter a cell in (Right Click) Format Control > Cell link: then it prints the number (e.g. 4) of the value in the range. So if the drop down options are “Monday”, “Tuesday”, “Wednesday”, “Thursday” and “Thursday” is selected, the linked cell says: “4”.
They didn’t link a cell, then I could call that cell in a VB sub and the job would be done. Unfortunately they didn’t, so I tried Recording a Macro and selecting the drop down form control.. That didn’t really work, except if I right clicked it, I got some more info from the macro VB:
ActiveSheet.Shapes.Range(Array("Drop Down 19")).Select
So is my drop down an Array? My understanding of an Array is that it’s a list of arguments.. all I get there is the name of the button. I am not experienced in VB so this is as far as I’ve got. Perhaps I can get a sub to select the button using the above line, but I need the info from it, i.e. which value is currently selected in the Drop Down.
(Using Excel 2010 but the .xls files are from ~2005)
code below whould return value "a" to specified range(s) The cells are formatted Marlett, 10pt, black, bold, center. Should return a nice tick mark to the specified range if selected shape has value of 1. I double chk'd the name of the shape referred to in code and it is correct Yet value of "a" is not returned, though the chkBox is "ticked". What else can I check?
Option Explicit Sub cv_ReviewCheckBoxes() Dim wbBook As Workbook Dim wsNotesLoose As Worksheet Dim wsCoinRolled As Worksheet Dim wsCoinLoose As Worksheet Dim wsSummary As Worksheet With Application .Calculation = xlCalculationManual .DisplayAlerts = False . ScreenUpdating = False End With.........................
I have many Form Control Check Boxes that all link to another sheet on row 3.
I have many changes to make but only want to implement the change related to the check box.
This code works perfect when you manualy type true or false on row 3 but not if the check box makes the change.
Private Sub Worksheet_Change(ByVal Target As Range) ThisCol = Target.Column If Target.Row = 3 Then RESULT = MsgBox(Cells(1, ThisCol) & " = " & Cells(3, ThisCol), vbOKOnly, "CLICK RESULTS") End If End Sub
Why does this not work when a check box changes the value in row 3?
Is there a way I can make my check box change color when it's checked? I'd like to have it uncolored and then turn green when checked. Not the cell, but the checkbox itself. I can't seem to make the check box part of the cell, if that would be an easier route to go please let me know. If I have to turn the cell green and not the check box, I'd love for the whole row to turn green.
I have coming from the Forms Controls within a Sheet 6 CheckBox.
for the following countries: "Spain", "France", "UK", "Italy", "Germany" and "EUROPE"
when Europe is selected the I select all the Check Boxes at once by Macro, if Europe is selected and I unselect Europe, then I unselect all the countries by Macro.
When Europe is selected and then I press for eg in Spain, the Spain is not selected and then I unselect Europe, by macro.
This works fine, and my macro does the job OK.
Code:
Sub mCountries() On Error Resume Next: Application.ScreenUpdating = False Dim wCaller As String: wCaller = Application.Caller Dim aCheckBoxes(): aCheckBoxes = Array("cBoxSpain", "cBoxFrance", "cBoxItaly", "cBoxGermany", "cBoxUK") Dim X As Long: X = -4146 Dim Y As Long
[Code]....
But if My 6 CheckBoxes are grouped... the Macro does do the job How can I refer to a shpes withing the Grouped Shape to apply the selection and/or to unselect??
I tried Conditional format and no luck. (Office 2010)
What I'm trying to do VB is:
If Cell B:B has value of "402" or "up" and Cell C:C is less >100 Then Change color on Cell C:C to "yello, red, etc" (if C value is <100 no color change)
I have a given som (general) range where I would like a function to change the background color of every second row in a visual basic function.
One could of course just loop through it and use the mod function, but I think there has to be something quicker.
I know about conditional formatting, but it is something I need to use over and over again on Ranges that will differ in size so I would like it to be a function I can just run as part of a sub.
Macro is not working .So the macro I am using is supposed to look back at all the months tab, match the Name from previous tabs and if they match change background color of the active sheet's cell to red.
Right now the macro is only able to lookup the name in the previous tab (i.e. For December it will only lookup November tab and not October-January).
e.g. (Candidate name is Jack King and he is in (october's tab, Column A Cell 2 )
I want this candidate name to turn red once I type his name in November/December tab.
I got an excel sheet were in column A i have listed a few names and in column B I got their respective results (numbers) with a background color.
I want to insert a function in such a way that when their numbers exceed a certain number the background color changes from for example blue to green. so >1200 = blue background color 1200-1350 = red < 1350 = green
I want to change the color of a cell's background based on valid data in the cell. I have a pull-down list, it uses a named list, and this all works fine. I want the cell to be red, and then after the user selects a valid entry from the pull-down list, I want to change the cell to yellow.
I need a macro that would change the cell background color in a calendar according to list of dates found in a table (Holidays & Vacations) which can changes on a yearly basis.
I have the code below set to change the background color based on certain conditions. What I need to do is change it so that if none of the conditions are met, it does not change the color at all. As it is written now, if anything is entered in a cell that has a background already set, but does not meet these conditions, the cell turns white.
creating a macro. I would like the background color of certain cells under column A (cells 12:25, 27:32, 34:38, 40:45, 47:51, 53:61, 63:70, 72:79, 81:88, 90:92) to change to the color green and display the text "Complete" on mouseclick.
Before the cell is clicked, it would be the color red, with no text. (I'm not sure if you need to know that).
Next, I would need a macro that resets everything back to red. I hope this macro could be assigned to a form button.
My boss wants a spreadsheet that has multiple buttons on it that will change the background color of a specific cell to four different colors. Example:
Text written in Cell B3, Button in Cell A3 that will change the Background color of Cell B3 to either Green, Yellow, Red or Blue.
There will be a lot of buttons on this worksheet following the same format as above. I don't want to change the value of what is in the cell, just the background color.
My Excel skills are basic at best, with no knowledge of VBA other than finding the VB Editor. What I'm trying to do: Attached is the file I'm working with, to give you a better idea. When a name is selected in column B, the cells in the non corresponding columns E to N should have a black background color. For example, when you select Mike in column B, the cells in that row in columns I to N, named Dave and Dean, should become black. If you select the name Dave, columns E to H (Mike) and M to N (Dean) should become black. In addition, the background color of the non-black cells should change depending on the status.
OK : green FAIL: red N/A: orange Exceptions: blue
The attached file shows a few possible results, manually entered.
I have a user who is asking if it is possible to create a custom checkbox control for use inside of Excel. This new checkbox control is essentially a checkbox control that has other graphics around the checkmark other than a square.
For instance, he need to have a triangle that has a clickable checkmark inside it. He needs a circle with a clickable checkmark inside as well as a couple of other shapes that have a clickable checkmark inside (no square around the checkbox). I've tried to put a regular checkbox on top of a graphic but you have to deal with the square corners of the checkbox even if it's set to transparent.
Any code or otherwise on how to create a custom or add-in that would do what I describe?
Positive cash flow cells all have green background, Negative cash flow cells, all have red background.
I calculate all the "sub- total" columns into one "total sum" cell. Based on this "total sum" I want the cell background to be red if the total sum is negative, or green if total sum is positive. How do I make the cell change to the proper background color based on whether it's a negative or postive total sum?
Any way to change the font color of a chart axis when a checkbox is set to true.
let checkbox be checkbox5 and chart be chart5. What I would like to happen is that if checkbox5 is true then the font color of the horizontal axis changed to grey (RGB 166,166,166), if it is false then I would like the font color of the horizontal axis to be black (RGB 0,0,0). I also would like this macro to be run every time the checkbox changes, or the corresponding cell changes to TRUE or FALSE (it is in another sheet, say sheet2). This is the code I have so far but all it is doing is showing the chart as selected and not changing the font color. I would also like it to not physically select the chart, this is for a dashboard so the selecting of the chart throws off some of the visuals a bit, but not sure how to do change the chart values without selecting it.