Signaler

Optionbutton dans un Frame renvoyer valeur différente [Résolu]

Posez votre question Lili - Dernière réponse le 8 sept. 2017 à 10:11 par Lili
Bonjour,

je travaille sur un projet de formulaire de gestion de temps. j'ai donc créé un formulaire dans lequel il y a un frame avec 3 optionbutton (je suis débutante en VBA)
l'utilisateur à le choix entre le premier bouton correspondant au temps plein, le second au temps partiel réduction hebdomadaire et le dernier au temps partiel réduction journalière.

en fonction du bouton choisi je souhaite que la valeur renvoyé dans une feuille excel soit TP pour temps plein, Redh pour réduction hebdomadaire et Redj pour réduction journalière (ce qui est différent de la valeur caption de chaque bouton enregistré au départ.

au début mon code était comme cela

Private Sub Commandbutton1_Click()
temp = ""
   For Each c In Me.Frame1.Controls
     If c.Value = True Then
       temp = c.Caption
     End If
   Next c
   Sheets("Effectifs").Cells(Ligne, 7) = temp

End Sub


ce qui fonctionne très bien mais les valeurs renvoyé sont : Temps plein (au lieu de TP), réduction hebdomdaire (au lieu de Redh)...

en cherchant un peu j'ai compris que je devais intégrer les lignes suivante

 Private Sub Frame1_Click()

If OptionButton1.Value = True Then temp = "TP"
If OptionButton2.Value = True Then temp = "Redh"
If OptionButton3.Value = True Then temp = "RedJ"
 End If

End Sub


mais je sais pas du tout ou les mettre et ca marche pas :(


j'en suis sur que j'y suis presque mais j'arrive pas, j'ai besoin d'un petit coup de pouce SVP.

Merci beaucoup


Utile
+0
plus moins
Bonjour Lili,
Fichier Excel 2007 : https://mon-partage.fr/f/tIU1LzBw/
Alt F11 pour voir la macro, puis revenir sur Excel
Cordialement
 
Donnez votre avis
Utile
+0
plus moins
Bonjour,

Deux choix.

1- tu souhaites conserver ton bouton de commande pour valider :
Private Sub CommandButton1_Click()
With Sheets("Effectifs")
    Select Case True
        Case OptionButton1: .Cells(Ligne, 7) = "TP"
        Case OptionButton2: .Cells(Ligne, 7) = "Redh"
        Case OptionButton3: .Cells(Ligne, 7) = "RedJ"
    End Select
End With
End Sub


2- tu peux te passer du bouton :
Private Sub OptionButton1_Click()
    If OptionButton1 Then Sheets("Effectifs").Cells(Ligne, 7) = "TP"
End Sub

Private Sub OptionButton2_Click()
    If OptionButton2 Then Sheets("Effectifs").Cells(Ligne, 7) = "Redh"
End Sub

Private Sub OptionButton3_Click()
    If OptionButton3 Then Sheets("Effectifs").Cells(Ligne, 7) = "RedJ"
End Sub


Comme tu préfères...
Donnez votre avis
Utile
+0
plus moins
Bonjour,

Merci à vous deux pour votre réponse rapide.
pikaju c'est exactement ce que je voulais, j'ai opté pour la première solution qui fonctionne parfaitement. merci beaucoup.

Bonne journée
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !