OVH Cloud OVH Cloud

Afficher dans des cellules précises le résultat d'un UserForm

12 réponses
Avatar
akar.serkan
Bonjour,

J'=E9cris ce message en partant du principe qu'il n'y a pas de question
stupide :) Alors =E9tant d=E9butant concernant VBA je suis vraiment
perdu.. j'ai pass=E9 2 jours complets =E0 chercher la solution sur le net
mais impossible de trouver..

Alors voil=E0 mon probl=E8me;

J'ai cr=E9=E9 un UserForm avec 24 checkboxs qui repr=E9sentent diff=E9rentes
actions de bourse. La personne qui ouvre excel voit appara=EEtre le
UserForm et doit cocher maximum 5 cases. Ensuite, en cliquant sur Ok,
les noms des actions coch=E9es doivent se placer dans les cellules F8 =E0
F12 (5 lignes) de la feuille "Optimisateur".

Donc je voulais tout d'abord savoir comment faire pour que les
s=E9lections s'affichent automatiquement dans les cellules que j'ai
pr=E9cis=E9?

Ensuite je ne sais pas comment faire =E9galement pour que 5 cases au
maximum puissent =EAtres coch=E9es.

Et pour finir je ne comprends pas pourquoi mon UserForm ne se retrouve
pas dans la liste des macros lorsque je fais "Outils/Macros". Car je
voudrais ajouter un bouton sur la feuille "Optimisateur" pour que
l'utilisateur puisse relancer l'analyse.

Comme vous pouvez le voir je suis absolument perdu. Je dois rendre mon
travail la semaine prochaine, une aide serait la tr=E8s bien venue.

Merci d'avance!

2 réponses

1 2
Avatar
JB
Saisie limitée à 5 options:

http://cjoint.com/?dquJ65e38a

Dim Chk(1 To 24) As New ClasseSaisie
Private Sub UserForm_Initialize()
For b = 1 To 24: Set Chk(b).GrSaisie = Me("Checkbox" & b): Next b
Me.b_ok.Enabled = False
End Sub

Private Sub b_ok_Click()
ligne = 8
For i = 1 To 24
If Me("checkbox" & i) Then
Cells(ligne, 6) = Me("checkbox" & i).Caption
ligne = ligne + 1
End If
Next i
End Sub

Module de classe ClasseSaisie:
Bonsoir,

Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
n = 0
For i = 1 To 24
If Selection_titres("Checkbox" & i) Then n = n + 1
Next i
Selection_titres.TextBox1.Value = n
If n > 5 Then Selection_titres(GrSaisie.Name) = False
Selection_titres.b_ok.Enabled = IIf(n > 0, True, False)
'For i = 1 To 24
' Selection_titres("Checkbox" & i).Enabled = _
' IIf(n = 5, Selection_titres("Checkbox" & i).Value, True)
'Next
End Sub

JB

On 16 mar, 18:20, wrote:
Tout de même j'aurais une petite question..

J'ai pu faire en sorte que le UserForm se bloque lorsque 5 cases sont
cochées mais je n'arrive pas à bloquer le bouton OK lorsqu'aucune
action n'est sélectionnée.

J'ai voulu ajouter

If n = 0 Then
Bouton_OK.Enabled = False
End If

Tout ceci dans le but de demander qu'au moins une action soit
sélectionnée. Je voudrais aussi qu'on ne puisse pas fermer le UserForm
avec la croix rouge qui est dans le coin en haut à droite sans que les
actions soient choisies.

Merci d'avance!


Avatar
akar.serkan
Super tout marche exactement comme je le voulais, merci mille fois!!!
1 2