Visual Basic

Résolu
Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
m@rina Messages postés 27566 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Je suis en train de créer un outil d'enregistrement des AT sur Excel avec des userform.

L'une de mes userform contient des cases à cocher (disons 3 cases). Comment faire pour que le nom des cases cochées apparraissent dans une case excel lorsque je ferme ma userform.

Exemple:

Case 1 cochée
Case 2 pas cochée
Case 3 cochée

alors la valeur en A1 est " Case 1 et Case 3 "
--
Thor tue

6 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Tu peux essayer ça:
    Dim msg as String
    
    msg = ""
    
    If Check1.Value Then
       msg = Check1.Caption & " "
    End if
    
    If Check2.Value Then
       msg = msg & Check2.Caption & " "
    End If
    
    If Check3.Value Then
       msg = msg & Check.Caption
    End If


    ;o)
    0
  2. m@rina Messages postés 27566 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour,

    Moi j'utiliserais une Listbox avec bouton d'option, ce qui te permet en plus d'ajouter, de supprimer ou de modifier facilement des items.
    Exemple ici :
    https://www.cjoint.com/?kpjxxJVDOn

    m@rina
    0
  3. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    Le souci c'est que mes cases à cocher ne sont pas alignées. Elles se situent tout autour d'une photo d'un corps en indiquant "tête", "épaule gauche", "épaule droite", "cou", etc etc...

    Mais dans l'idée c'est exactement ce que je cherche à faire.

    Une autre solution?
    0
  4. Polux31 Messages postés 7219 Statut Membre 1 204
     
    RE bonjour,

    Boudiou, j'étais pas réveillé ce matin, j'ai oublié de finir mon exemple

    Dim msg as String
    
    msg = ""
    
    If Check1.Value Then
       msg = Check1.Caption & " "
    End if
    
    If Check2.Value Then
       msg = msg & Check2.Caption & " "
    End If
    
    If Check3.Value Then
       msg = msg & Check3.Caption
    End If
    
    Sheets(1).Range("A1").Value = msg


    Je pense que M@rina connait mieux le contexte que moi et saura être plus pertinente sur le sujet.

    ;o)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    Ca marche nickel! Merci polux
    0
  7. m@rina Messages postés 27566 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour,

    Effectivement on peut aussi faire une boucle sur tous les Checkbox, ce qui évite de répéter x fois l'instruction :

    Dim c
    Range("A1").Clear
    For Each c In UserForm1.Controls
    If Left(c.Name, 5) = "Check" And c.Value = True Then
    Range("A1").Value = Range("A1").Value & c.Caption & " "
    End If
    Next


    m@rina

    0