How to retrieve checkbox data?

Solved
Mr Boushido Posted messages 6 Status Member -  
eriiic Posted messages 24581 Registration date   Status Contributor Last intervention   -
Bonjour,

I'd like that when a user clicks or double-clicks (it doesn't matter) on a cell, a UserForm appears with about fifteen checkboxes, and a validate button that will retrieve the values of these checkboxes (but be careful, I don't want it to show True or False... see below) to display these values in that very cell (by the way, I'd like the cell to adjust based on the number of values).

The values look like this:
checkbox1 "Compliant"
checkbox2 "Non-compliant"
checkbox3 "Scratch"
checkbox4 "Deep scratch"
checkbox5 "etc..."
' '
' '
' '

Here's an example of my validate button that doesn't work (lol I'm just starting out)

Private Sub Validate_Click()
Dim i As Integer

For i = 1 To 14

If Me.CheckBox(i).Value = True Then
ActiveCell.Value = ActiveCell.Value & Me.CheckBox(i).Caption & ", "

End If
Next i
End Sub

Thank you for explaining how to do it.

Best regards.

8 answers

f894009 Posted messages 17417 Registration date   Status Member Last intervention   1 717
 
Re,

hence my question Link (#3):

ActiveCell = CaseCoche.CheckBox(i).Value (even if the code is wrong) Since you have checkboxes, why write in only one cell???

an example of code to put in the VBA of the Userform: (here two checkboxes, but code to write for the other 12) writing Sheet1 A1 to A14 based on selection

Dim ValCheck(14)

Private Sub checkbox1_click()
If CheckBox1 Then
ValCheck(0) = "Compliant"
Else
ValCheck(0) = ""
End If
End Sub

Private Sub checkbox2_click()
If CheckBox2 Then
ValCheck(1) = "Non Compliant"
Else
ValCheck(1) = ""
End If
End Sub

Private Sub Validate_Click()
Dim i As Integer, point As Byte

With Worksheets("Sheet1")
point = 1
.Range("A1:A15").ClearContents
For i = 0 To 1 '14
If ValCheck(i) <> "" Then
.Range("A" & point) = ValCheck(i)
point = point + 1
End If
Next i
End With
'CaseCoche.Hide
End Sub
1