Função Direita Esqu...
 
Notifications
Clear all

Função Direita Esquerda

14 Posts
4 Usuários
0 Reactions
2,887 Visualizações
(@ramzero)
Posts: 127
Estimable Member
Topic starter
 

Olá pessoal

Gostaria de exibir em uma célula uma determinada hora e em outra um preço usando VBA dessa forma:

Exemplo:

34:23 (mm:ss)

1234,00

Mas gostaria que aparecessem assim:

4:23

34,00

Ou seja, exibir somente alguns caracteres da direita

No caso da hora, quando tento fazer aparecem uns números loucos, nada a ver, e no caso do preço, não consigo fazer exibir os zeros da direita depois da vírgula, ao invés de aparecer 34,00 aparece 1234

Outra dúvida, tem como fazer o Excel exibir milissegundos?

Alguém poderia me ajudar?

Obrigado

 
Postado : 07/03/2018 12:23 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Para resolver a questão das horas:
=TEXTO(DIREITA(TEXTO(A1;"hh:mm");4);"h:mm")

mas seria melhor ver sua planilha para entender...

Sobre milisegundos, eu nunca ouvi falar que o excel registra isso.

Abrç!

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

Att.

André Arruda

 
Postado : 07/03/2018 2:24 pm
(@ramzero)
Posts: 127
Estimable Member
Topic starter
 

Fala xlarruda

Pra formato h:mm ok, mas eu preciso no formato m:ss

Tentei modificar a fórmula aqui, mas não funcionou

usei por exemplo 1:23:45

como uso mm:ss em A1 ficou 23:45

daí com sua fórmula ficou 1:23

mas preciso que seja 3:45

Daí tentei mudar a fórmula para =TEXTO(DIREITA(TEXTO(A1;"mm:ss");4);"m:ss")

e saiu assim: 45:00

Sabe como corrigir?

Abrç

 
Postado : 07/03/2018 3:54 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não sei se é isto, mas tente:
supondo que o Valor em A1 = 1:23:45

Em B1 coloque a formula:
=TEXTO(DIREITA(TEXTO(A1;"mm:ss");4);"h:mm") - resultado 3:45

Em C1 coloque a formula:
=TEXTO(DIREITA(TEXTO(A1;"mm:ss");5);"h:mm") - resultado 23:45

Em D1 coloque a formula:
=SUBSTITUIR(C1;":";",") - resultado 23,45

[]s

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

 
Postado : 07/03/2018 9:38 pm
(@ramzero)
Posts: 127
Estimable Member
Topic starter
 

Fala Mauro Coutinho

Deu certo para o que preciso na sua fórmula:

=TEXTO(DIREITA(TEXTO(A1;"mm:ss");4);"h:mm")

Porém você saberia me dizer como faço isso em VBA, pra exibir o resultado em P1?

Obrigado

 
Postado : 12/03/2018 1:04 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Você pode obter o resultado de A1 com a seguinte instrução, é só jogar o resultado para a celula que pretende :

Dim sA1 As Date
    Dim LValue As String
    
    sA1 = Range("A1").Value
    
    LValue = Right(sA1, 4)

    MsgBox LValue

[]s

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

 
Postado : 12/03/2018 1:58 pm
(@ramzero)
Posts: 127
Estimable Member
Topic starter
 

Fala Mauro Coutinho

Deu certo, consegui fazer com a hora

Agora falta saber como fazer com valor número

exemplo:

tenho 1234,50

queria exibir assim: 34,50

Tentei usar o mesmo raciocínio do seu código mas não consegui

Sabe como?

Obrigado

 
Postado : 14/03/2018 10:12 am
(@klarc28)
Posts: 971
Prominent Member
 
Dim sA1 As DOUBLE
    Dim LValue As String
    
    sA1 = Range("A1").Value
    
    LValue = Right(sA1, 5)

    MsgBox LValue
 
Postado : 14/03/2018 11:24 am
(@ramzero)
Posts: 127
Estimable Member
Topic starter
 

Fala Klarc28

Tentei isso também, mas quando o valor é: 1234,00

Sai assim: 1234,0

E quando o valor é 1234,50

Sai assim: 234,5

Preciso que quando for: 1234,00

Saia: 34,0

E quando for: 1234,50

Saia: 34,5

É Possível?

Obrigado

 
Postado : 14/03/2018 11:35 am
(@klarc28)
Posts: 971
Prominent Member
 

É necessário deixar a célula no formato texto.

Option Explicit

Sub TESTE()

Dim sA1 As String
    Dim LValue As String
    
    sA1 = CStr(Range("E1").Value)
    
    LValue = Right(sA1, 5)

    MsgBox LValue
    
End Sub
 
Postado : 14/03/2018 11:51 am
(@ramzero)
Posts: 127
Estimable Member
Topic starter
 

Fiz como você disse mas mesmo assim numa situação, aparece errado

Quando ponho 1234,00 aparece 234 (preciso assim: 4,0) ----> Sempre 1234,00

Se ponho 1234,50 aparece 4,5 (preciso assim: 4,5, aqui ok! tá certo!) ----> Sempre 1234,50

Mudei no código de 5 para 3

Sub TESTE()

Dim sA1 As String
    Dim LValue As String
    
    sA1 = CStr(Range("C1").Value)
    
    LValue = Right(sA1, 3)     <-----  Mudei de 5 para 3

    Range("A2").Value = LValue
End Sub
 
Postado : 14/03/2018 12:15 pm
(@klarc28)
Posts: 971
Prominent Member
 

Anexo

 
Postado : 14/03/2018 12:51 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Ainda estou com problemas de baixar anexos, acredito que o modelo do klarc28 tenha solucionano a sua duvida, mas se ainda não foi, o ideal seria anexar um modelo para podermos analisarmos como estão a formatação no mesmo, no excel temos como lidar com numericos utilizando a função Texto, e tambem no inicio de s ua postagem comecou com o tipo horas e depois para numerico e agora decimais e provavelmente para formato texto.

Veja com uso de formula como ficaria com valores numericos que por padrão o excel não mostra os zeros após a virgula na casa decimal, a menos que formatemos para aparecer e mesmo assim a virgula não é reconhecida, temos de utilizar formula para formatar e usar.

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

 
Postado : 14/03/2018 1:01 pm
(@ramzero)
Posts: 127
Estimable Member
Topic starter
 

Valeu Klarc28 e Mauro Coutinho

As duas opções funcionaram para o que preciso

Optei pela do Klarc28, por querer tudo em VBA

Obrigado, resolvido

 
Postado : 16/03/2018 11:45 am