Caso de estudio

Planteamiento

Una empresa amiga del medio ambiente ha decidido dar un incentivo sobre su salario básico, solo a los empleados que reciclen. Dicho incentivo se encuentra condicionado por el tipo de material reciclado y el peso en kilogramos de este, como se muestra en la siguiente tabla:

Tipo de material Peso (Kilogramos) Porcentaje del incentivo
Papel Entre 10 y 30 10%
>30 25%
Vidrio Entre 50 y 90 30%
>90 50%
Cartón Entre 60 y 80 45%
>80 50%
Aluminio Entre 40 y 70 55%
>70 60%

Elaborar un programa en VBA que permita calcular y mostrar el número total de empleados que reciclan, el valor total que se pagara por incentivo y también el valor que se pagara exclusivamente por lo incentivos correspondientes al material papel.

Desarrollo

1. Diseño del formulario

(Para ampliar la imagen haga clic sobre ella)

2. Desarrollo del código

Dim Nempl As String
Dim TipM As String
Dim P As Double
Dim Nempl As String
Dim TipM As String
Dim P As Double
Dim VInc As Currency
Dim Salr As Currency
Dim totalemp As Integer
Dim totalVInc As Double
Dim desea As String
Dim TIncPapel As Currency

Private Sub ComboBox1_Change()

'desea = "si"

'On Error GoTo etiqueta

Do

Nempl = TextBox1.Text
Salr = TextBox3.Value

If OptionButton1.Value = True Then

P = TextBox2.Value

Select Case ComboBox1.ListIndex

Case 0

If (P > 10 And P < 30) Then

VInc=(Salr * 0.1)

Label7.Caption="Felicidades " & Nempl & " su Incentivo es por valor de $"

Else

If (P > 30) Then

VInc = (Salr * 0.25)

Label7.Caption = "Felicidades " & Nempl & " su Incentivo es por valor de $"

Else

VInc = 0

Label7.Caption = "Lo Sentimos " & Nempl & " su Incentivo es por valor de

End If

End If

TextBox4.Value = VInc

TIncPapel = TIncPapel + VInc

Case 1

If (P > 50 And P < 90) Then

VInc=(Salr * 0.3)

Label7.Caption="Felicidades " & Nempl & " su Incentivo es por valor de $"

Else

If (P > 90) Then

VInc = (Salr * 0.5)

Label7.Caption = "Felicidades " & Nempl & " su Incentivo es por valor de $"

Else

VInc = 0

Label7.Caption = "Lo Sentimos " & Nempl & " su Incentivo es por valor de

End If

End If
TextBox4.Value = VInc

Case 2

If (P > 60 And P < 80) Then

VInc=(Salr * 0.45)

Label7.Caption="Felicidades " & Nempl & " su Incentivo es por valor de $"

Else

If (P > 80) And ( OptionButton1.Value = True) Then

VInc = (Salr * 0.5)

Label7.Caption = "Felicidades " & Nempl & " su Incentivo es por valor de $"

Else

VInc = 0

Label7.Caption = "Lo Sentimos " & Nempl & " su Incentivo es por valor de

End If

End If
TextBox4.Value = VInc

Case 3

If (P > 40 And P < 70) Then

VInc=(Salr * 0.55)
Label7.Caption="Felicidades " & Nempl & " su Incentivo es por valor de $"

Else

If (P > 70) And (

OptionButton1.Value = True) Then
VInc = (Salr * 0.6)
Label7.Caption = "Felicidades " & Nempl & " su Incentivo es por valor de $"

Else

VInc = 0
Label7.Caption = "Lo Sentimos " & Nempl & " su Incentivo es por valor de

End If

End If
TextBox4.Value = VInc

Case Else
VInc = 0
VInc = Salr * VInc
TextBox4.Value = VInc

End Select

totalemp = totalemp + 1
totalVInc = totalVInc + VInc

Else

If OptionButton2.Value = True Then

MsgBox "El empleado No Recicla por lo tanto no tiene incentivo", vbCritical + vbOKOnly, "No recicla"

End If

End If

desea = InputBox("Digite si/no si quiere continuar ingresando otro empleado", "Otro empleado")

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Value = 0
TextBox4.Text = ""
Label7.Caption = ""
OptionButton1.Value = False
OptionButton2.Value = False

Loop While (desea = "si")

'Exit Sub

'etiqueta: MsgBox "Error al ingresar los datos, por favor intentarlo nuevamente. Gracias !!! ", vbCritical + vbOKOnly, "Error"

End Sub
Private Sub CommandButton3_Click()
End

End Sub

Private Sub CommandButton4_Click()
TextBox5.Text = totalemp
TextBox6.Text = totalVInc
End Sub

Private Sub CommandButton5_Click()
TextBox7.Text = TIncPapel
End Sub

Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then

MsgBox "El empleado No Recicla por lo tanto no tiene incentivo", vbCritical + vbOKOnly, "No recicla"
TextBox1.Visible = False
TextBox2.Visible = False
TextBox3.Visible = False
TextBox4.Visible = False
Label7.Visible = False

End If
End Sub

ComboBox1.AddItem 1
ComboBox1.AddItem 2
ComboBox1.AddItem 3
ComboBox1.AddItem 4
End Sub

Private Sub CommandButton2_Click()

TextBox1.Visible = True
TextBox2.Visible = True
TextBox3.Visible = True
TextBox4.Visible = True
Label7.Visible = True

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
Label7.Caption = ""
OptionButton1.Value = False
OptionButton2.Value = False

End Sub