Botón de opción en un Frame devuelve valor diferente

Resuelto
Lili -  
 Lili -
Hola,

estoy trabajando en un proyecto de formulario de gestión del tiempo. así que he creado un formulario en el que hay un frame con 3 opciones (soy principiante en VBA)
el usuario tiene la opción entre el primer botón correspondiente a tiempo completo, el segundo a tiempo parcial reducción semanal y el último a tiempo parcial reducción diaria.

según el botón elegido quiero que el valor devuelto en una hoja de Excel sea TP para tiempo completo, Redh para reducción semanal y Redj para reducción diaria (lo que es diferente del valor caption de cada botón registrado al inicio).

al principio mi código era así

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


lo que funciona muy bien pero los valores devueltos son: Temps plein (en lugar de TP), réduction hebdomadaire (en lugar de Redh)…

al buscar un poco entendí que debía incorporar las siguientes líneas

 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


pero no sé dónde colocarlas y no funciona :(

estoy seguro de que casi lo logro pero no puedo, necesito un pequeño empujón POR FAVOR.

Gracias mucho

Configuración: Windows / Internet Explorer 11.0

3 respuestas

félix
 
Hola Lili,
Archivo Excel 2007: https://mon-partage.fr/f/tIU1LzBw/
Alt F11 para ver la macro, y luego volver a Excel
Saludos
0
pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 772
 
Hola, Dos opciones. 1- ¿quieres conservar tu botón de comando para validar:
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- ¿puedes prescindir del botón:
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
Como prefieras... -- Cordialmente, Franck
0
Lili
 
Hola,

Gracias a ambos por vuestra pronta respuesta.
pikaju es exactamente lo que quería, he optado por la primera solución que funciona perfectamente. muchas gracias.

Que tengas un buen día
0