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
![](p10h3_img.jpg)
(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