UserForm Case à cocher

Bonjour à tous,

Je suis en train de réaliser une UserForm pour un formulaire et il me faut utiliser des cases à cocher.

J'aimerais que lorsque je coche la case il est le Label correspondant qui se copie automatiquement dans une cellule B3 de ma base de données.

contact

J'ai essayé de faire un code mais il ne fonctionne pas :

Private Sub CheckBox1_Click() 'N°1

' Si la case est coché alors écrire Physique dans la base de donnée

If CheckBox1.Value = True Then 'Si coché ...

Sheets("BDD").Select

Rows("3:3").Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Range("B3") = "Physique"

End If

End Sub

Private Sub CheckBox2_Click()

' Si la case est coché alors écrire Téléphone dans la base de donnée

If CheckBox1.Value = True Then 'Si coché ...

Sheets("BDD").Select

Rows("3:3").Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Range("B3") = "Téléphone"

End If

End Sub

Private Sub CheckBox3_Click()

' Si la case est coché alors écrire Email dans la base de donnée

If CheckBox1.Value = True Then 'Si coché ...

Sheets("BDD").Select

Rows("3:3").Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Range("B3") = "Email"

End If

End Sub

Private Sub CheckBox4_Click()

' Si la case est coché alors écrire Lettre dans la base de donnée

If CheckBox1.Value = True Then 'Si coché ...

Sheets("BDD").Select

Rows("3:3").Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Range("B3") = "Lettre"

End If

End Sub

Pouvez-vous m'aider ?

Merci d'avance

Julie s.

Bonjour Julie,

Dans tes 4 procédures événementielles, tu testes à chaque fois: "If CheckBox1.Value = True Then 'Si coché ...".

Rien ne garantit que la modification de cette seule anomalie va résoudre le problème ... Pourquoi ne pas joindre ton fichier (sans données confidentielles) avec ton UserForm et le code qui y est lié? Ça nous permettrait de savoir si le mot à côté de la case est bien une étiquette ('Label') ou la propriété 'Caption' de la case à cocher.

D'autre part, puisqu'il s'agit de cases à cocher, rien n'empêcherait un utilisateur d'en cocher plusieurs. Qu'inscris-tu à ce moment? Autoriseras-tu plusieurs sélections?

Bonjour U. Milité,

Je vous joint mon fichier pour que les informations soit plus compréhensibles, désolée de ne pas l'avoir fait avant.

Et pour répondre à vos questions je pense plus que cela correspond à la propriété CAPTION plutôt que LABEL.

Et pour cette catégorie de case à cocher il n'est pas possible que l'utilisateur coche plusieurs case.

Fichier :

270reclamation.xlsx (49.47 Ko)

Merci d'avance,

Julie s.


Fichier : avec les macros ne veut pas s'envoyer ( l'extension Xltm n'est pas autorisée)

Re,

Fais une copie de ton fichier au format '.xlsm' (ce format-là doit passer) ... parce que dans un fichier 'xlsx', il ne saurait y avoir ni code, ni UserForm (donc ça ne nous aide guère )

Autant pour moi :

368reclamation11.xlsm (42.84 Ko)

J'ai réussit à le faire fonctionner mais que pour "Physique" les autres ne fonctionnent pas ...

Deux commentaires, si tu le permets:

  • Je croyais que tu avais trouvé un système pour éviter de cocher plusieurs cases simultanément. Quand j'ai fait le test, je suis bien parvenu à cocher les 4 ... donc j'imagine que tu parlais d'autre chose?
  • Si tu as un bouton "Valider" dans ton formulaire, il vaudrait mieux n'inscrire le mode de contact dans la feuille qu'au moment ou tu valides (de manière que toutes les infos liées à une réclamation figurent sur une même ligne).

Tu pourrais dès lors utiliser tes Sub CheckBox_Click pour décocher les autres cases quand tu en coches une (ici, quand tu coches "Physique"):

Private Sub CheckBox1_Click() 'N°1
    If CheckBox1 Then 'Si coché ...
        CheckBox2 = False
       CheckBox3 = False
       CheckBox4 = False
    End If
End Sub

Quand tu valideras, tu peux écrire une petite boucle du genre:

For i = 1 To 4
    If Controls("checkBox" & i) Then Range("B3") = Controls("checkBox" & i).Caption
Next i

... pour inscrire la valeur de la propriété 'Caption' de la seule case cochée

Vous allez me dire que je me mêle de ce qui ne me regarde pas, mais dans un cas comme celui-là, je choisirais plutôt une liste déroulante :

  • basée sur une liste enregistrée dans une feuille, elle pourrait évoluer (impossible sans intervenir sur le code avec les cases à cocher);
  • cette même liste pourrait comptabiliser les contacts pour chaque occurrence (statistiques gratuites !) avec des NB.SI...

Allez, c'est promis, je ne vous dérange plus ! ;+)

Cordialement, Daniel

Merci beaucoup de vos réponses j'ai enfin réussi à comprendre merci, merci merci

Rechercher des sujets similaires à "userform case cocher"