Notifications
Clear all

Melhorias na Rotina VBA

3 Posts
2 Usuários
0 Reactions
1,151 Visualizações
(@jlvfranca)
Posts: 20
Eminent Member
Topic starter
 

Pessoal,

Criei uma rotina que quando a opção de pagamento for alterada, a formatação da céula H4 também altera. Porém gostaria de melhorar esta rotina e como estou tentando aprender preciso da boa vontade dos participantes do fórum.

Melhoria

- Quando a opção escolhida for “Renda Mensal em Percentual” a célula H4, não poderá ser menor 0,1% e nem maior 2%. (alertar)
- Quando a opção escolhida for “Renda mensal em cotas” a célula H4, não poderá ser menor 5 anos e nem maior 20 anos. (alertar)

Segue abaixo a rotina e a planilha

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$3" Then
Select Case .Value
Case "Renda mensal em cotas"
.NumberFormat = "00 ""ano(s)"""
Case "Renda mensal em percentual"
.NumberFormat = "0.00%" '
Case "Renda vitalícia em cotas"
.NumberFormat = "#,##0.00000000"
Case Else
.NumberFormat = ""
End Select
End If
End Sub

Agradeço antecipadamente a todos.

João França

 
Postado : 21/09/2018 9:11 am
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Segue minha contribuição:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$H$3" Then
        Select Case [H3].Value
            Case "Renda mensal em cotas"
                [H4].NumberFormat = "00 ""ano(s)"""
            Case "Renda mensal em percentual"
                If [H4] >= 0.001 And [H4] <= 2 Then
                    [H4].NumberFormat = "0.00%" '
                End If
            Case "Renda vitalícia em cotas"
                If [H4] >= 5 And [H4] <= 20 Then
                    [H4].NumberFormat = "#,##0.00000000"
                End If
            Case Else
                [H4].NumberFormat = ""
        End Select
    End If
End Sub

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 21/09/2018 9:35 am
(@jlvfranca)
Posts: 20
Eminent Member
Topic starter
 

André, bom dia.

Obrigado pela disposição em ajudar-me.
A rotina não está atendendo as minhas necessidades, pois quando altero a forma de pagamento na célula “H3” a formatação da célula “H4” não está alterando.
Talvez não tenha formulado as minhas dúvidas direito, peço desculpas.
A formatação e as restrições de valores a serem digitados na célula “H4”, dependerá da opção da célula “H3”.

Exemplo 1 - Opção “Renda mensal em cotas” a formatação ficará “00 ano(s)”

Case "Renda mensal em cotas"
.NumberFormat = "00 ""ano(s)"""

Preciso agora que após feita a opção pelo pagamento os valores a serem digitados agora fiquem limitados, neste caso, no mínimo 5 anos e no máximo 20 anos.

Exemplo 2 - Opção “Renda mensal em percentual” a formatação ficará “0,00%”

Case "Renda mensal em percentual"
.NumberFormat = "0.00%"

Neste outro exemplo, após feita a opção pelo pagamento, os valores a serem digitados agora fiquem limitados, neste caso, no mínimo 0,1% e no máximo 2%.

Espero que tenha melhorado o meu questionamento.
Obrigado mais uma vez.

jlvfranca

Segue minha contribuição:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$H$3" Then
        Select Case [H3].Value
            Case "Renda mensal em cotas"
                [H4].NumberFormat = "00 ""ano(s)"""
            Case "Renda mensal em percentual"
                If [H4] >= 0.001 And [H4] <= 2 Then
                    [H4].NumberFormat = "0.00%" '
                End If
            Case "Renda vitalícia em cotas"
                If [H4] >= 5 And [H4] <= 20 Then
                    [H4].NumberFormat = "#,##0.00000000"
                End If
            Case Else
                [H4].NumberFormat = ""
        End Select
    End If
End Sub
 
Postado : 24/09/2018 8:36 am