Forum Discussion
How to link multi checkbox list for multi columns HELP
- Jul 14, 2020
Select your cells and try running this macro to add checkboxes and link it to the cell behind the checkbox.
If that's not what you want then you can change the linked cell to
cb.LinkedCell = cell.Offset(0,1).Address
to link it to the cell on the same row and one column to the right. Also, you would need to change the cell reference for the custom number format to match the linked cell (I'm assuming you want the linked cell to appear blank for a cleaner look - if not, then you can delete that line).
cell.Offset(0,1).NumberFormat = ";;;"
Sub AddCheckBoxes() Const height As Double = 19.2 Const width As Double = 17.4 Dim left As Double Dim top As Double Dim area As Range Dim cell As Range Dim cb As Object For Each area In Selection.Areas For Each cell In area.Cells left = cell.left + ((cell.width - width) / 2) top = cell.top + ((cell.height - height) / 2) Set cb = ActiveSheet.CheckBoxes.Add(left, top, width, height) cb.LinkedCell = cell.Address cb.Caption = vbNullString cb.Value = False cell.NumberFormat = ";;;" Next cell Next area Set cb = Nothing Set area = Nothing Set cell = Nothing End Sub
Select your cells and try running this macro to add checkboxes and link it to the cell behind the checkbox.
If that's not what you want then you can change the linked cell to
cb.LinkedCell = cell.Offset(0,1).Address
to link it to the cell on the same row and one column to the right. Also, you would need to change the cell reference for the custom number format to match the linked cell (I'm assuming you want the linked cell to appear blank for a cleaner look - if not, then you can delete that line).
cell.Offset(0,1).NumberFormat = ";;;"
Sub AddCheckBoxes()
Const height As Double = 19.2
Const width As Double = 17.4
Dim left As Double
Dim top As Double
Dim area As Range
Dim cell As Range
Dim cb As Object
For Each area In Selection.Areas
For Each cell In area.Cells
left = cell.left + ((cell.width - width) / 2)
top = cell.top + ((cell.height - height) / 2)
Set cb = ActiveSheet.CheckBoxes.Add(left, top, width, height)
cb.LinkedCell = cell.Address
cb.Caption = vbNullString
cb.Value = False
cell.NumberFormat = ";;;"
Next cell
Next area
Set cb = Nothing
Set area = Nothing
Set cell = Nothing
End Sub
- NegarAnsariJun 29, 2021Copper ContributorGreat it worked! Thanks JMB17
- msm66Jul 15, 2020Brass ContributorJMB17
Thank you very much for your efforts and for taking the time to solve my problem. You helped me before too. I remember your Id. You are a truly intelligent man. Again appreciate it a lot, it could not be more clear and straightforward on the point. It works and this solution was exactly the one I needed.- msm66Aug 16, 2020Brass Contributor
Hi JMB17
It's me again. since you helped with my last problem regarding checkboxes I thought you might be able to solve my recent frustration.
I attached an excel file. I am looking for a formula or function that it will adjust my calendar or schedule.
Let's say if I pick Monday only task 1, Tuesday task 1 and task 2 and Friday task 2. so now I am looking for a solution that all I can see in the new table will be look like or similar to the "green table" (basically modify a table to new table excluded the days and tasks that has not been selected (or ideally I am not sure if there is any way that just by selecting days and type of task can directly generate the table)
is this doable through excel?
looking forward to hearing your feedback.