Está en la página 1de 11

Excel Avanzado con VBA 09

Ing. Enrique Alfaro


 Ing. Enrique Alfaro  12/08/2021

Control ScrollBar, SpinButton y OptionButton


 Ing. Enrique Alfaro  12/08/2021

Fórmulas para el cálculo en la hoja


Las Ventas de Enero = Valor de la barra de progreso
Crecimiento mensual de ventas = los valores del Spin
Ventas del resto de meses = Ventas de Enero x
Porcentaje Crecimiento Mensual de Ventas
costos = Ventas x Factor por costos que a su vez se
cambia por selección de botón de opción
Utilidad antes de impuesto = Ventas - Costos
Impuesto = Utilidad antes de Impuesto x Tasa
impuesto que a su vez es cambiado por el checkbox
Utilidad después de Impuesto = Utilidad Antes de
Impuesto - Impuesto
 Ing. Enrique Alfaro  12/08/2021

Solución vba (1/8)


Option Explicit
_______________________________
'procedimiento de evento change para scrollbar
Private Sub ScrollBar1_Change()
'Asignar a celda B3 el valor actual de scrollbar1
 Range("B3").Value = ScrollBar1.Value
End Sub
_______________________________
'procedimiento de evento Scroll para scrollbar
Private Sub ScrollBar1_Scroll()
 Range("B3").Value = ScrollBar1.Value
End Sub
 Ing. Enrique Alfaro  12/08/2021

Solución vba (2/8)


'procedimiento de evento Spindown para spinbutton1
Private Sub SpinButton1_SpinDown()
 Range("B4").Value = WorksheetFunction.Max(0, Range("B4").Value - 0.0005)
End Sub
 Ing. Enrique Alfaro  12/08/2021

Solución vba (3/8)


'procedimiento de evento Spinup para spinbutton1
Private Sub SpinButton1_SpinUp()
 With Range("B4")
 'Aumentar el valor de la celda B4 en
incrementos de .05%. Detenerse en 1%
 .Value = WorksheetFunction.Min(0.010, .Value
+ 0.0005)
 End With
End Sub
 Ing. Enrique Alfaro  12/08/2021

Solución vba (4/8)


'event click para el checkbox1
Private Sub CheckBox1_Click()
 If CheckBox1.Value Then
 'Si está activo, tasa de impuesto = 33%
 Range("B16").Value = 0.33
 Else
 'Si no está activo, tasa de impuesto = 30%
 Range("B16").Value = 0.3
 End If
End Sub
 Ing. Enrique Alfaro  12/08/2021

Solución vba (5/8)


 'Evento Click para Mangos
 Private Sub OptionButton1_Click()
 Call Opciones
 End Sub
 'Evento Click para Lichis
 Private Sub OptionButton2_Click()
 Call Opciones
 End Sub
 'Evento Click para Platanos
 Private Sub OptionButton3_Click()
 Call Opciones
 End Sub
 'Evento Click para Rambután
 Private Sub OptionButton4_Click()
 Call Opciones
 End Sub
 Ing. Enrique Alfaro  12/08/2021

Solución vba (6/8)


'Todos los procesos para los botones de opción
Private Sub Opciones()
 Dim FactorPorCostos As Double
 Dim MaximoValorScrollbar As Long
 Dim MinimoValorScrollbar As Long
 'Determinar cual botón de opción es verdadero
 Select Case True
 'Mangos
 Case OptionButton1.Value
 FactorPorCostos = 0.63
 MinimoValorScrollbar = 50000
 MaximoValorScrollbar = 150000
 Ing. Enrique Alfaro  12/08/2021

Solución vba (7/8)


 ‘ Lichis
 Case OptionButton2.Value
 FactorPorCostos = 0.74
 MinimoValorScrollbar = 25000
 MaximoValorScrollbar = 75000
 'Platanos
 Case OptionButton3.Value
 FactorPorCostos = 0.57
 MinimoValorScrollbar = 10000
 MaximoValorScrollbar = 30000
 Ing. Enrique Alfaro  12/08/2021

Solución vba (8/8)


 'Rambután
 Case OptionButton4.Value
 FactorPorCostos = 0.65
 MinimoValorScrollbar = 15000
 MaximoValorScrollbar = 30000
 End Select
 'Aplicar los factores
 Range("B15").Value = FactorPorCostos
 ScrollBar1.Min = MinimoValorScrollbar
 ScrollBar1.Max = MaximoValorScrollbar
 ScrollBar1.Value = MaximoValorScrollbar
End Sub

También podría gustarte