Cientos de casillas de verificación cambian de verdadero / falso a sí / no

Tengo una spreadsheet que se actualiza continuamente para rastrear las visitas a los pacientes. Tengo 2 columnas que he utilizado el siguiente código de VBA para ingresar múltiples casillas de verificación que están asignadas a la celda en la que están ubicadas. Sin embargo, me gustaría agregar algo que haga que el valor de las casillas de verificación sea Sí o No cuando hago clic en ellas. Hay más de 600 de estos en la spreadsheet, por lo que necesito algo que cubra todos a la vez en lugar de tener que cambiar cada uno por separado. Publicaba una foto de la spreadsheet, pero todavía no puedo porque soy un usuario nuevo y no tengo puntos de reputación. ¿Alguien puede ayudar?

Sub AddCheckBoxes() Dim cb As CheckBox Dim myRange As Range, cel As Range Dim wks As Worksheet Set wks = Sheets("Sheet1") Set myRange = wks.Range("K2:K300, L2:L300") For Each cel In myRange Set cb = wks.CheckBoxes.Add(cel.Left, cel.Top, 30, 6) With cb .Caption = "" .LinkedCell = cel.Address End With Next End Sub 

End Sub

Cuando el código crea las casillas de verificación, puede agregar .OnAction ="MacroName"

  With cb .LinkedCell = cel.Address .Caption = "" .OnAction = "YesNoChkBox" 'will call the macro when the checkbox is clicked. End With 

Lo que hace esto es asignar una macro a la casilla cuando se hace clic. El macro luego calculará el range de la checkbox cliqueada y mostrará "sí" o "no" si es verdadero o ahora.

  Sub MakeCkBx() Dim cb As CheckBox Dim myRange As Range, cel As Range Dim wks As Worksheet Set wks = Sheets("Sheet1") Set myRange = wks.Range("K2:K21, L2:L21") For Each cel In myRange Set cb = wks.CheckBoxes.Add(cel.Left, cel.Top, 30, 6) With cb .LinkedCell = cel.Address .Caption = "" .OnAction = "YesNoChkBox" 'will call the macro when the checkbox is clicked. End With cel.HorizontalAlignment = xlRight Next End Sub Sub YesNoChkBox() Dim r As Range, x, CkBx As CheckBox Set CkBx = ActiveSheet.CheckBoxes(Application.Caller) Set r = Range(CkBx.LinkedCell) If CkBx = 1 Then r = "yes" Else r = "No" End If End Sub 

Ejecute la macro MakeCkBx y luego click las casillas de verificación para get los resultados.

Tengo un ejemplo simple de application.caller ubicado aquí