Notifications
Clear all

Manter casas decimais

21 Posts
4 Usuários
0 Reactions
4,917 Visualizações
(@mateus0203)
Posts: 52
Trusted Member
Topic starter
 

Boa noite amigo,

A situação é simples, porém acredito que a resolução não seja tanto assim.

Suponhamos que na célula A1 eu tenha um valor, por exemplo, 0,0078. Neste caso, então, há dois algarismos significativos (7 e 8).
Suponhamos que após algumas operações esse valor da célula A1 se torne 0,01725.

Eu gostaria de uma forma de guardar a quantidade de algarismos significativos da célula A1 antes da operação, e atribuir esta mesma quantidade de algarismos significativos ao número resultante depois da operação. Então ficaria assim:

1 - Antes da operação: 0,0078
2 - (Operação)
3 - Depois da operação: 0,017

O problema é que depois da operação ele volta com vários algarismos significativos (0,01725, nesse caso 4 algarismos)

 
Postado : 01/10/2017 4:54 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tanto no tópico abandonado como neste o "espirito" da duvida permanece o mesmo.
A tentativa de auxilio ali esbarrou/parou na falta de melhores explicações e exemplos montado coma a demanda requerida.
Entendo que você deva ter domínio do que necessita; porem não informando/exemplificando detalhadamente o que deseja; quando e com o que essa demanda irá ocorrer; aliado a sua iniciação na linguagem; creio eu; nada ira acontecer.
Ler um bom livro sempre e recomendado, porem se quiser ser auxiliado; ajude a quem tem vontade de ajudar a entender o desejado.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/10/2017 6:42 am
(@mateus0203)
Posts: 52
Trusted Member
Topic starter
 

Eis uma planilha com um exemplo perfeito do meu problema. Nela há uma macro que faz operações e retorna à mesma célula o valor após a operação. Porém como vocês verão, ao retornar o valor à célula, este valor vem com outro formato. Então eu gostaria que este mesmo código, ao retornar o valor, mantivesse o número de casas decimais anterior à operação.

 
Postado : 25/10/2017 7:27 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
mateus, concordo com o Reinaldo, para ser ajudado tem que ajudar com boas explicações e bons exemplos ... e você está economizando nos exemplo e também nas explicações!! ... Você tem o arquivo inteiro e se debate com o problema a tempos e não consegue resolver, imagina nós que temos apenas uma ponta dele e estamos vendo pela primeira vez??
.
Este seu novo exemplo ficou pior ainda, ficou ilegível!! ... Faça em uma coluna como está sua planilha, e na outra coluna como você quer que fique (e explique lá mesmo passo a passo: meu arquivo está assim blá blá; e quero que fique assim blá blá)!!
.
E, se não puder postar o arquivo original, poste um exemplo IDÊNTICO, afinal é muito chato quando alguém faz um Código para um exemplo, e depois o autor diz que não funcionou porque o arquivo original é um pouco diferente!!
.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/10/2017 7:38 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mateus

Eu uni os teus 2 tópicos.

Conforme as regras do fórum, não é permitido criar mais de um tópico sobre o mesmo assunto.

Depois eu vejo se dá para dar uma limpada em algumas mensagens deste tópico.

Leia as regra do fórum:
viewtopic.php?f=7&t=203

[]s

Patropi - Moderador

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/10/2017 8:59 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Realmente, com sua explicação fica muito dificil entender o que realmente deseja e quando/onde.
Vamos tentar, como diria Jack-O estripador;por partes:

Uma maneira para se identificar o numero de casas decimais de um numero, na rotina abaixo:

Sub manter_dec()
Dim ndec() As String
Dim zDec As Integer
For x = 3 To 8
    If Cells(x, 2) - Int(Cells(x, 2)) = 0 Then
        zDec = 0
    Else
        ndec = Split(Cells(x, 2).Value, ",")
        zDec = Len(ndec(1))
    End If
MsgBox "decimais= " & zDec
Next
End Sub

Obs.: Utilizei como base os números em sua planilha exemplo (B3:B8)

Agora o que pretende fazer com essa informação?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/10/2017 12:28 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Mateus,

Se é que entendi direito, seria armazenar numa variável a quantidade de dígitos decimais que tinha antes de executar as operações e ao final arredondar (e formatar) o valor resultante com o mesmo número de casas decimais que tinha antes. E isso já foi sugerido aqui por nossos colegas colaboradores, mas como não tinha modelo...

Vc pode usar uma UDF para calcular isso. A vantagem é que dá para usar a UDF também diretamente na planilha depois.

Veja algumas linhas que acrescentei em alguns pontos no código da pasta que vc anexou antes.

 
Postado : 25/10/2017 2:53 pm
Página 2 / 2