Usuário com melhor resposta
Dúvida de Formulário vba-xls

Pergunta
-
Pessoal,
boa tarde!
Tenho a seguinte dúvida:
1- Considerações
Tenho um formulário, onde ao selecionar o cargo de uma pessoa na combobox1 denominada Cargos, é exibida na text box denominada salário bruto, o valor do mesmo. Segue abaixo a programação para essa combobox.
If ComboBox1.Value = "Analista de Sistema" Then
salariob.Value = Range("Cargos!b2")ElseIf ComboBox1.Value = "Programador" Then
salariob.Value = Range("Cargos!b3")ElseIf ComboBox1.Value = "Operador" Then
salariob.Value = Range("Cargos!b4")Tenho outra combobox denominada dependentes (de 0 a 9), onde ao selecionar o número correspondente a qtd de dependentes, multiplicassse o salário bruto pelo percentual correspondente a quantidade que você seleciona. Vide programação:
Private Sub ComboBox2_Change()
If ComboBox2.Value = "0" Then
vlrdependentes.Value = 0ElseIf ComboBox2.Value = "1" Then
vlrdependentes.Value = Range("Cargos!b2") * 0.01ElseIf ComboBox2.Value = "2" Then
vlrdependentes.Value = Range("Cargos!b2") * 0.02ElseIf ComboBox2.Value = "3" Then
vlrdependentes.Value = Range("Cargos!b2") * 0.03ElseIf ComboBox2.Value = "4" Then
vlrdependentes.Value = Range("Cargos!b2") * 0.04ElseIf ComboBox2.Value = "5" Then
vlrdependentes.Value = Range("Cargos!b2") * 0.05e por aí vai...
2- Questão: Se alterar o Range("Cargos!b2"), para C2, D2, E2 e assim sucessivamente para cada salário da planilha cargos, ou seja, "9 VEZES para cada salário" (pois é a qtd de dependentes que há na planilha), será aplicado o percentual correspondente conforme programação acima. Mas como fazer isso de uma forma mais simplificada, pois ficaria monstruosa a programação?????? Ao invés de 6 cargos/salários eu poderia ter 50 cargose uma vez que são 9 dependentes, eu teria 540 linhas para cada, ou seja, ficaria impraticável.
Podem ajudar????
Desde já agradeço a todos.
Respostas
-
Dim lCargo As Long
Private Sub ComboBox1_Change()
Select Case ComboBox1
Case "Analista de Sistema"
lCargo = 2
Case "Programador"
lCargo = 3
Case "Operador"
lCargo = 4
'Case "Função
'lCargo = ...
'...
End Select
salariob = Range("Cargos!B" & lCargo)
End Sub
Private Sub ComboBox2_Change()
vlrdependentes = Range("Cargos!B" & lCargo) * 0.01 * ComboBox2
End Sub
'Não esqueça de incluir em seu formulário a linha abaixo na rotina de inicialização:
Sub UserForm_Initialize()
lCargo = 0
End Sub
Felipe Costa Gualberto - http://www.ambienteoffice.com.br- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 22:03
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 22:03
Todas as Respostas
-
-
Dim lCargo As Long
Private Sub ComboBox1_Change()
Select Case ComboBox1
Case "Analista de Sistema"
lCargo = 2
Case "Programador"
lCargo = 3
Case "Operador"
lCargo = 4
'Case "Função
'lCargo = ...
'...
End Select
salariob = Range("Cargos!B" & lCargo)
End Sub
Private Sub ComboBox2_Change()
vlrdependentes = Range("Cargos!B" & lCargo) * 0.01 * ComboBox2
End Sub
'Não esqueça de incluir em seu formulário a linha abaixo na rotina de inicialização:
Sub UserForm_Initialize()
lCargo = 0
End Sub
Felipe Costa Gualberto - http://www.ambienteoffice.com.br- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 22:03
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 22:03