XL 2013 valeur cellule en fonction de valeur combobox et optionbtutton

Appo1985

XLDnaute Occasionnel
Bonjour à tous

Avec le formulaire, je détermine la valeur de la cellule A1 en cliquant sur « Valider ».

Les valeurs des boutons d’option 1 et 2 sont respectivement <5 et >=5. (5 étant une moyenne)

Le problème est que toutes les matières n’ont pas 5 comme moyenne certaines ont pour moyenne 10.

Je voudrais donc ajouter une condition en tenant compte de la valeur de combobox1 qui indique les matières.

La moyenne de chaque matière est indiquée en commentaire.

Merci par avance.
 

Pièces jointes

  • optionbutton et combobox.xlsm
    19.4 KB · Affichages: 3
Solution
Bonjour.
Sinon, si les matières ne changent jamais on pourrait simplement faire comme ça :
VB:
Option Explicit
Private TMoy()
Private Sub UserForm_Initialize()
   Me.ComboBox1.List = Array("Langue", "EPS", "Maths", "Sciences", "Histoire")
   TMoy = Array(10, 5, 10, 10, 5)
   End Sub
Private Sub CommandButton1_Click()
' tenir compte de la valeur choisie en Combobox1
' la moyenne est 5 pour "EPS" et "Histoire" mais 10 pour "Langue", "Maths" et "Sciences"
   Dim Moy As String
   If Not ComboBox1.MatchFound Then Exit Sub
   Moy = TMoy(ComboBox1.ListIndex)
   If OptionButton1.Value Then
      Range("A1").Value = "<" & Moy
      End If
   If OptionButton2.Value Then
      Range("A1") = ">=" & Moy
      End If
   End Sub
Private Sub...

Dranreb

XLDnaute Barbatruc
Bonjour.
Sinon, si les matières ne changent jamais on pourrait simplement faire comme ça :
VB:
Option Explicit
Private TMoy()
Private Sub UserForm_Initialize()
   Me.ComboBox1.List = Array("Langue", "EPS", "Maths", "Sciences", "Histoire")
   TMoy = Array(10, 5, 10, 10, 5)
   End Sub
Private Sub CommandButton1_Click()
' tenir compte de la valeur choisie en Combobox1
' la moyenne est 5 pour "EPS" et "Histoire" mais 10 pour "Langue", "Maths" et "Sciences"
   Dim Moy As String
   If Not ComboBox1.MatchFound Then Exit Sub
   Moy = TMoy(ComboBox1.ListIndex)
   If OptionButton1.Value Then
      Range("A1").Value = "<" & Moy
      End If
   If OptionButton2.Value Then
      Range("A1") = ">=" & Moy
      End If
   End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   Range("A1").Select
   Selection.ClearContents
   End Sub
Attention, ça me parait bizarre que la cellule soit systématiquement effacée, ensuite, au déchargement de l'UserForm
 
Dernière édition:

Appo1985

XLDnaute Occasionnel
Bonjour.
Sinon, si les matières ne changent jamais on pourrait simplement faire comme ça :
VB:
Option Explicit
Private TMoy()
Private Sub UserForm_Initialize()
   Me.ComboBox1.List = Array("Langue", "EPS", "Maths", "Sciences", "Histoire")
   TMoy = Array(10, 5, 10, 10, 5)
   End Sub
Private Sub CommandButton1_Click()
' tenir compte de la valeur choisie en Combobox1
' la moyenne est 5 pour "EPS" et "Histoire" mais 10 pour "Langue", "Maths" et "Sciences"
   Dim Moy As String
   If Not ComboBox1.MatchFound Then Exit Sub
   Moy = TMoy(ComboBox1.ListIndex)
   If OptionButton1.Value Then
      Range("A1").Value = "<" & Moy
      End If
   If OptionButton2 = True Then
      Range("A1") = ">=" & Moy
      End If
   End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   Range("A1").Select
   Selection.ClearContents
   End Sub
Attention, ça me parait bizarre que la cellule soit systématiquement effacée, ensuite, au déchargement de l'UserForm
Grandement merci.
C'est ce que je voulais.

En fait j'utilise la plage A1 à D1 comme critère de filtres et le bouton de commande pour voir le résultat J'ai peur qu'en laissant la cellule A1 sans effacer que ça joue sur les prochains résultats.
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 244
Membres
103 162
dernier inscrit
fcfg