Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
AMORIM123

Excel vba - resultado de cálculo em porcentagem

Recommended Posts

 

Eis me aqui novamente meus caros.
Dessa vez trago a seguinte questão:

 

Private Sub CommandButton1_Click()


    sVal1 = TextBox1.Value
    
    sVal2 = txt_desc.Value
    

'1º caso - txtResultado = Format(Round(Round((sVal1 / sVal2) * 100, 4) * 100, 2)) & "%"
    'como faço para aplicar este metodo de calculo quando o resulta da divisão de sVal1/sVal2 tiver dois 00 após a virgula - exemplo 0,002780
  
'2º caso -   txtResultado = Format(Round(Round((sVal1 / sVal2) * 100, 4), 2)) & "%"
   'como faço para aplicar este metodo de calculo quando o resulta da divisão de sVal1/sVal2 não contiver zeros após a virgula - exemplo 0,3272
      

End Sub

na realidade o que eu quero é uma forma em que quando dividisse meu sVal1 / sVal2, independente do valor (lógico, obedecendo a lógica de cálculo de porcentagem, menor pelo maior), o valor visualizado no "txtResultado" fosse uma porcentagem com duas casas decimais após a virgula, pois se eu calcular o "Exemplo1" com o "1º caso" do código o resultado será 27,73%, todavia se realizar o calculo do "Exemplo1" com o "2º caso" o resultado será 0,28% e vise-versa.


Exemplo1→ 22.000,00/7.931.000,00 = 0,002773 se eu utilizar o "1 - caso" terei como resultado 27,73%

Porém se calcular:

Exemplo2= 21.600,00/66.000,00 = 3272,73% (1º caso); se eu utilizar o "2 - caso" terei como resultado 32,72% -
e ai teria "o solicitado", isto é, um resulta exibindo em porcentagem, com duas casas decimais após a virgula

Espero ter sido objetivo!

Em anexo a planilha!

quem puder contribuir com algum raciocínio ou exemplo de outro código de outras planilhas serei muito grato!

calculo.rar

Compartilhar este post


Link para o post
Compartilhar em outros sites

SOLUÇÃO:

 

Private Sub CommandButton1_Click() sval1 = TextBox1.Value sval2 = txt_desc.Value If VBA.Round(sval1 / sval2, 2) = 0# Then txtResultado = Format(VBA.Round((sval1 / sval2) * 10000, 2), "0.00") & "%" Else txtResultado = Format(VBA.Round((sval1 / sval2) * 100, 2), "0.00") & "%" 
End If End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×