Afficher dans des cellules précises le résultat d'un UserForm
12 réponses
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.
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!
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, akar.ser...@gmail.com 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.
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!
akar.serkan
Super tout marche exactement comme je le voulais, merci mille fois!!!
Super tout marche exactement comme je le voulais, merci mille fois!!!