I (incompletely) refactored your entire code. You will have to go thru all the Checkboxes on your Form and add the appropriate number to their Tag property. Then, (see next para,) complete the code.
As you study this code you will see how I designed it using patterns of values. This makes it very easy to discern where a typographical error occurred. Note that for each Case statement, I merely copied one statement the required number of times, then edited the Values per the pattern of values. Except for Case 20 :LOL
Please note that VBAX enforces its' own ideas of Comment indentation. I always put Section Head Comments at the start of the line.
About "dim a bunch;" I use "Option Explicit" at the top of all my code pages, which requires you to explicitly declare all variables, thus preveenting any un-caught Typos.
Private Sub OKClick()
Const NumCheckBoxes As Long = 40 'Adjust to suit
Const Verifier As Long = NumCheckBoxes * -1 '(True = -1)
Dim Ctrl As Object
Dim Verifying As Long
Dim CheckBoxNumber As Long
Dim RowToDelete As Variant 'Handles Numbers and Strings for CheckBox 20
Dim ShName As String
'''' Verify None or only one Checkbox is False
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is msforms.CheckBox Then
Verifying = Verifying + Ctrl.Value
If Not Ctrl.Value Then CheckBoxNumber = Ctrl.Tag 'Number of False Checkbox
End If
Next Ctrl
If Verifying > Verifier + 1 Then 'Two false CheckBoxes
MsgBox "YOU IDIOT! Only uncheck one box! No Biscuit for you!"
Exit Sub
End If
Unload Userform1 'I hope this is not the form you are working with below
''''Get first empty Cell in Column A (rowNr)
rowNr = Worksheets("Data").Cells(Rows.Count, 1).End(xlUp).Row + 1
''''Put Checkbox Values in Column C
With Worksheets("Data").Columns("C")
.Cells(2) = CheckBox1.Value
.Cells(3) = CheckBox2.Value
.Cells(4) = CheckBox3.Value
.Cells(5) = CheckBox4.Value
.Cells(6) = CheckBox5.Value
.Cells(7) = CheckBox6.Value
.Cells(8) = CheckBox7.Value
.Cells(9) = CheckBox8.Value
.Cells(10) = CheckBox9.Value
.Cells(11) = CheckBox10.Value
End With
''''All CheckBoxes = TRUE
If Verifying = Verifier Then 'All Checkboxes = True
RowToDelete = "none"
ShName = ""
Else
''''Deal With the False CheckBox
Select Case CheckBoxNumber
Case 2
RowToDelete = 4
ShName = ",3"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 4
RowToDelete = 6
ShName = "-3,5"
Case 5
RowToDelete = 7
ShName = "-4,6"
Case 6
RowToDelete = 8
ShName = "-5,7"
Case 7
RowToDelete = 9
ShName = "-6,8"
Case 8
RowToDelete = 10
ShName = "-7,9"
Case 9
RowToDelete = 11
ShName = "-8,10"
Case 10
RowToDelete = 12
ShName = "-9,11"
Case 11
RowToDelete = 13
ShName = "-10,12"
Case 12
RowToDelete = 14
ShName = "-11,13"
Case 13
RowToDelete = 15
ShName = "-4,6"
Case 14
RowToDelete = 16
ShName =
Case 15
RowToDelete = 17
ShName =
Case 16
RowToDelete = 18
ShName =
Case 17
RowToDelete = 19
ShName =
Case 18
RowToDelete = 20
ShName =
Case 19
RowToDelete = 21
ShName =
Case 20
RowToDelete = "22:32"
ShName = "-19,21"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
Case 3
RowToDelete = 5
ShName = "-2,4"
End Select
End If
Sheets("Template").Copy
ActiveSheet.Name = "TC1" & ShName & "-40"
If Not RowToDelete = "none" Then .Rows(RowToDelete).Delete
'More Code
End Sub