I have hacked together the following code from various forum posts that does sort of what I want. In a nutshell, I would like code for multiple check boxes in a spreadsheet that may or may not be adjacent to each other. The checkbox must display a check mark (tick) from Wingdings (must be from Wingdings). This is because the data will ultimately be mail merged into a Word document with very specific formatting. The current code displays a dot (which is not ideal) and off-sets the cell selection by two. This is the only way I could get the check box to be able to be checked and unchecked by a single click without having to select another cell first (this is critical). This is kludgy and I need more elegant code
If necessary single-click to check, double-click to uncheck would be a good compromise.
Any help is greatly appreciated.
Wayne
For context, the spreadsheet in question can be found at http://wa.yne.cc/template.xls

Any help is greatly appreciated.
Wayne
For context, the spreadsheet in question can be found at http://wa.yne.cc/template.xls
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const WS_RANGE As String = "B3:B28:F3:F28,H3:H28:L3:L28,N3:N28:R3:R28,T3:T28:X3:X28,Z3:Z28:AD3:AD28,AF3:AF28:AJ3:AJ28,AL3:AL28:AP3:AP28,AR3:AR28:AV3:AV28,AX3:AX28:BB3:BB28,BD3:BD28:BH3:BH28,BJ3:BJ28:BN3:BN28,BP3:BP28:BT3:BT28" '<=== change to suit
On Error GoTo err_handler
Application.EnableEvents = False
If Not Application.Intersect(Target, Range(WS_RANGE)) Is Nothing Then
With Target
.Font.Name = "WingDings"
Select Case .Value
Case "l": .Value = ""
Case Else: .Value = "l"
End Select
.Offset(2, 0).Select
End With
End If
err_handler:
Application.EnableEvents = True
End Sub