Comment récupérer les données des cases à cocher ?

Résolu
Mr Boushido Messages postés 6 Statut Membre -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'aimerai que lorsqu'un utilisateur clic ou double clic (peu importe) sur une cellule un UserForm apparaisse avec dedans des case à cocher (environ une quinzaine), et un bouton valider qui ensuite va récupérer les valeurs de ces checkbox ( mais attention je ne veut pas que sa m'affiche Vrai ou Faux... voir ci-dessous) pour afficher ces valeurs dans cette cellule même ( en passant j'aimerai que la cellule s'adapte en fonction du nombre de valeurs).

Les valeurs ressemble à ça :
checkbox1 "Conforme"
checkbox2 "Non conforme"
checkbox3 "Rayure"
checkbox4 "Rayure profonde"
checkbox5 "etc..."
' '
' '
' '

Voici par exemple mon bouton valider qui ne marche pas (lol je débute)

Private Sub Valider_Click()
Dim i As Integer

For i = 1 To 14

If Me.CheckBox(i).Top = True Then
ActiveCell = CaseCoche.CheckBox(i).Value

End If
CaseCoche.Hide
Next i
End Sub

Merci de m'expliquer comment faire .

Cordialement

8 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    d'ou ma question Lien (#3):

    ActiveCell = CaseCoche.CheckBox(i).Value (meme si le code est faut) Vu que vous avez des checkboxs, pourquoi une seule cellule a ecrire ???

    un exemple de code a mettre dans le VBA de l'Userform: (ici deux checkbox, mais code a ecrire pour les 12 autres) ecriture feuille1 A1 a A14 suivant coche

    Dim ValCheck(14)

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

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

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

    With Worksheets("feuil1")
    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