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
