I think you need to provide more info.
But this may help you get started.
First, I wouldn't use the checkboxes from the control toolbox. I'd use the
checkbox from the Forms toolbar. I find them easier to work with and less
impact to excel.
Second, I'd layout my worksheet and checkboxes nicely.
I'd use column A for the names of the workers.
I'd use row 1 for the descriptions of the checkboxes (less space than individual
captions).
I'd put the 12 checkboxes in B2:M31 (30 rows, 12 checkboxes each). I'd make
those columns skinny.
And then I'd use a nice naming convention:
CBX_R##_01 through CBX_R##_12
I'd try it against a test worksheet:
Option Explicit
Sub RunOnce()
Dim CBX As CheckBox
Dim myRange As Range
Dim wks As Worksheet
Dim iRow As Long
Dim iCol As Long
Set wks = ActiveSheet
With wks
'remove any existing checkboxes
.CheckBoxes.Delete
For iRow = 2 To 31
For iCol = .Range("b1").Column To .Range("M1").Column
With .Cells(iRow, iCol)
Set CBX = .Parent.CheckBoxes.Add _
(Top:=.Top, _
Left:=.Left, _
Height:=.Height, _
Width:=.Width)
CBX.LinkedCell = .Cells(1).Address(external:=True)
.NumberFormat = ";;;"
End With
With CBX
.Name = "CBX_R" & Format(iRow, "00") _
& "_" & Format(iCol, "00")
.Caption = ""
End With
Next iCol
Next iRow
End With
End Sub
Sub TurnAllOff()
Dim wks As Worksheet
Set wks = ActiveSheet
With wks
.CheckBoxes.Value = xlOff
End With
End Sub
Sub CreateStrings()
Dim wks As Worksheet
Dim myStr As String
Dim iRow As Long
Dim iCol As Long
Set wks = ActiveSheet
With wks
For iRow = 2 To 31
myStr = .Cells(iRow, 1).Value
For iCol = .Range("b1").Column To .Range("M1").Column
If .CheckBoxes("cbx_r" & Format(iRow, "00") _
& "_" & Format(iCol, "00")).Value = xlOn Then
myStr = myStr & ", " & .Cells(1, iCol)
End If
Next iCol
.Cells(iRow, "N").Value = myStr
Next iRow
End With
End Sub
Notice that in the RunOnce subroutine, each checkbox has a linked cell. But
that linked cell has a custom number format of ";;;". That means that the
true/false won't be seen in the worksheet cell. But it will be seen in the
formulabar if you select that cell.
It could come in handy if you wanted to count the number of trues:
=countif(b2:B31,true)
or
=countif(b2:m2,true)
======
ps. You can't use names that look like addresses. So a name of A1 isn't going
to work. But _A1 or CBX_A1 would be fine.
Remember that xl2007 has 16384 columns. That's 3 alpha characters for the
column "letter".