Usar option button

Estoy terminando un excel de gestión de carburantey mi problema es que no se como colocar dos OptionButton para que cuando se elija entre gasolina o diesel, el dato final de la suma de todas las referencias introducidas, vaya a diferentes celdas de una misma hoja. Ejemplo:
En hoja 1, me da el total de litros en la casilla D9, y quiero que si está seleccionado el OptionButton gasolina, me salga ese total en la hoja 2 celda H11, pero que si esta seleccionado el OptionButton diesel, me salga el tptal en la hoja 2 celda I11.
Necesito que según se alterne el OptionButton gasolina o diesel, el dato total salga en una casilla o en la otra.
Espero haberme explicado bien, soy bastante novato... Muchas gracias de antemano.
{"Lat":43.0993534520605,"Lng":-3.28388214111328}

1 respuesta

Respuesta
2
Te dejo la instrucción que se ejecutará cuando selecciones, por ej el option 1:
Private Sub OptionButton1_Click()
If OptionButton1.value = True then sheets(2).Range("H11") = Sheets(1).Range("D9")
end sub
Lo mismo debieras hacer para el 2do option, o incluir esa línea en alguna otra rutina que ya tengas.
La respuesta perfecta, solo quisiera saber si se puede hacer de tal forma que mientras está selecciondo un determinado OptionButton, es decir por ejemplo el "Gasolina" (en la hoja 1), lo datos que voy modificando a lo largo del mes, me salgan automáticamente en la casilla seleccionada de la hoja de relación (hoja 2), sin tener que picar en el OptionBotton gasolina, cada vez que quiera que se actualicen los datos. Y que ademas, que cuando alterne de OptionButton, los datos pasen de una celda a otra (de la H11 a la I11), sin que en la hoja 2 me figuren los dos datos a la vez.
Espero haberme explicado bien. Muchísimas gracias de antemano.
No sé si te estoy entendiendo, pero la instrucción: If OptionButton1. value = True then sheets(2). Range("H11") = Sheets(1). Range("D9") te sirve para colocarla en cualquier macro que ya tengas.
Es decir que si tenés una macro de pase de datos, allí evalúas 1ro qué valor tiene el Optionbutton1:
' tu ruitina de copiado
If OptionButton1.value = True then
sheets(2).Range("H11") = Sheets(1).Range("D9")
else
sheets(2).Range("I11") = Sheets(1).Range("D9")
end if
'aquí solo pasa el contenido de D9
Sdos.
Elsa
Mil perdones, me he explicado mal. En la hoja 1 tengo diez lineas para meter los datos de diez repostajes, y la onceaba linea me da el total de litros (celda d9). En la hoja 2 tengo un documento de relación, donde solo me figura el total de litros, en la celda h11 para gasolina y I11 para diesel.
Con la primera instrucción que me diste, se traspasan los datos a la relación, perfectamente. Lo que te planteaba, que no se si se podrá hacer.., es que por ejemplo el día 1 de mes, yo seleccione el option button de gasolina (OptionButton 1), y que los datos se trasladasen directamente a la hoja dos, sin tener que picar cada vez en el OptionButton.
Ahora por ejemplo, relleno la linea 1 con 20 euros, y cuando pico el OptionButton, me traslada el dato perfectamente, pero cuando sigo rellenando datos, día 2 30euros, etc..., no me aparece el dato total en la hoja 2, hasta que no vuelvo a picar en OptionButton, por definirlo de alguna manera, lo que pretendo es que se trasladen los datos a tiempo real.
Igual no se puede hacer, gracias de antemano por tu paciencia.
Bien, parece que tenés el control en una hoja (¿es un control Formulario o del cuadro de Controles -ActiveX? ). Asumí que es un activex
Si necesitas que cada cambio que hagas en esas 10 líneas se vean reflejadas en hoja2, necesitas una rutina en el evento change de tu hoja1.
Este es un ejemplo:
Private Sub Worksheet_Change(ByVal Target As Range)
'evalúo si el cambio se dió en el rango indicado-- AJUSTAR
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
'evalúo cuál es la opción seleccionada
If OptionButton1.Value = True Then
    Sheets("Hoja2").Range("H11") = ActiveSheet.Range("D9")
Else
    Sheets("Hoja2").Range("I11") = ActiveSheet.Range("D9")
End If
End If
End Sub
Probablemente para ti sea fácil, pero para los que no dominamos el tema, es un alivio contar con gente como tu. Sencillamente brillante, gracias por tu tiempo y sobre todo por tu paciencia. Mil gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas