MELHORANDO O CODIGO
Como melhorar o código abaixo com CASE?
Dim gerente As Single
If Val(Textbox3.Text) >= 1 And Val(Textbox4.Text) >= 1 Then
gerente = Textbox1.Text
If gerente < 95 Then
Textbox2.Text = [Ô]0.00[Ô]
Else
If gerente >= 95.0 And gerente <= 99.9 Then
Textbox2.Text = [Ô]0.03[Ô]
Else
If gerente >= 100 And gerente <= 105 Then
Textbox2.Text = [Ô]0.08[Ô]
Else
If gerente > 105 And gerente <= 110 Then
Textbox2.Text = [Ô]0.13[Ô]
Else
If gerente > 110 And gerente <= 115 Then
Textbox2.Text = [Ô]0.20[Ô]
Else
If gerente > 115 And gerente <= 120 Then
Textbox2.Text = [Ô]0.30[Ô]
Else
If gerente > 120 And gerente <= 125 Then
Textbox2.Text = [Ô]0.43[Ô]
Else
If gerente > 125 And gerente <= 130 Then
Textbox2.Text = [Ô]0.58[Ô]
Else
If gerente > 130 Then
Textbox2.Text = [Ô]0.75[Ô]
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Dim gerente As Single
If Val(Textbox3.Text) >= 1 And Val(Textbox4.Text) >= 1 Then
gerente = Textbox1.Text
If gerente < 95 Then
Textbox2.Text = [Ô]0.00[Ô]
Else
If gerente >= 95.0 And gerente <= 99.9 Then
Textbox2.Text = [Ô]0.03[Ô]
Else
If gerente >= 100 And gerente <= 105 Then
Textbox2.Text = [Ô]0.08[Ô]
Else
If gerente > 105 And gerente <= 110 Then
Textbox2.Text = [Ô]0.13[Ô]
Else
If gerente > 110 And gerente <= 115 Then
Textbox2.Text = [Ô]0.20[Ô]
Else
If gerente > 115 And gerente <= 120 Then
Textbox2.Text = [Ô]0.30[Ô]
Else
If gerente > 120 And gerente <= 125 Then
Textbox2.Text = [Ô]0.43[Ô]
Else
If gerente > 125 And gerente <= 130 Then
Textbox2.Text = [Ô]0.58[Ô]
Else
If gerente > 130 Then
Textbox2.Text = [Ô]0.75[Ô]
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
If Val(Textbox3.Text) >= 1 And Val(Textbox4.Text) >= 1 Then
Textbox2.Text = Regra(Val(Textbox1.Text))
End If
Function Regra(V1 As Long) As String
Select Case V1
Case Is < 95
Return [Ô]0.00[Ô]
Case 95 To 100
Return [Ô]0.03[Ô]
Case 100 To 105
Return [Ô]0.08[Ô]
Case 105 To 110
Return [Ô]0.13[Ô]
Case 110 To 115
Return [Ô]0.20[Ô]
Case 115 To 120
Return [Ô]0.30[Ô]
Case 120 To 115
Return [Ô]0.43[Ô]
Case 125 To 130
Return [Ô]0.58[Ô]
Case Else
Return [Ô]0.75[Ô]
End Select
End Function
Textbox2.Text = Regra(Val(Textbox1.Text))
End If
Function Regra(V1 As Long) As String
Select Case V1
Case Is < 95
Return [Ô]0.00[Ô]
Case 95 To 100
Return [Ô]0.03[Ô]
Case 100 To 105
Return [Ô]0.08[Ô]
Case 105 To 110
Return [Ô]0.13[Ô]
Case 110 To 115
Return [Ô]0.20[Ô]
Case 115 To 120
Return [Ô]0.30[Ô]
Case 120 To 115
Return [Ô]0.43[Ô]
Case 125 To 130
Return [Ô]0.58[Ô]
Case Else
Return [Ô]0.75[Ô]
End Select
End Function
melhorado
Function Regra(V1 As Decimal) As String
Select Case V1
Case Is < 95
Return [Ô]0.00[Ô]
Case Is < 100
Return [Ô]0.03[Ô]
Case Is <= 105
Return [Ô]0.08[Ô]
Case Is <= 110
Return [Ô]0.13[Ô]
Case Is <= 115
Return [Ô]0.20[Ô]
Case Is <= 120
Return [Ô]0.30[Ô]
Case Is <= 115
Return [Ô]0.43[Ô]
Case Is <= 130
Return [Ô]0.58[Ô]
Case Else
Return [Ô]0.75[Ô]
End Select
End Function
com if tambem fica simples, se for assim
Dim gerente As Single
If Val(TextBox3.Text) >= 1 And Val(TextBox4.Text) >= 1 Then
gerente = TextBox1.Text
If gerente < 95 Then
TextBox2.Text = [Ô]0.00[Ô]
ElseIf gerente < 100 Then
TextBox2.Text = [Ô]0.03[Ô]
ElseIf gerente <= 105 Then
TextBox2.Text = [Ô]0.08[Ô]
ElseIf gerente <= 110 Then
TextBox2.Text = [Ô]0.13[Ô]
ElseIf gerente <= 115 Then
TextBox2.Text = [Ô]0.20[Ô]
ElseIf gerente <= 120 Then
TextBox2.Text = [Ô]0.30[Ô]
ElseIf gerente <= 125 Then
TextBox2.Text = [Ô]0.43[Ô]
ElseIf gerente <= 130 Then
TextBox2.Text = [Ô]0.58[Ô]
Else
TextBox2.Text = [Ô]0.75[Ô]
End If
End If
O melhor mesmo seria você ter estas regras cadastradas no banco de dados e fazer uma consulta para achar a correta
Citação::
O melhor mesmo seria você ter estas regras cadastradas no banco de dados e fazer uma consulta para achar a correta
com certeza é a melhor opção, se nao na camada de negocio
Boa tarde.
Muito obrigado pelas contribuições.
O lance é que os dados são digitáveis. A aplicação é uma calculadora. Abraços.
Muito obrigado pelas contribuições.
O lance é que os dados são digitáveis. A aplicação é uma calculadora. Abraços.
Tópico encerrado , respostas não são mais permitidas