Optionbutton dans un Frame renvoyer valeur différente

Résolu/Fermé
Lili - Modifié le 8 sept. 2017 à 09:35
 Lili - 8 sept. 2017 à 10:11
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


3 réponses

Bonjour Lili,
Fichier Excel 2007 : https://mon-partage.fr/f/tIU1LzBw/
Alt F11 pour voir la macro, puis revenir sur Excel
Cordialement
 
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
8 sept. 2017 à 09:48
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...
0
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
0