Ir ao conteúdo

Macro extrair hora, minuto, segundo e configurar como texto


rodrigo.gaw

Posts recomendados

Postado

Amigos, tenho a seguinte macro

Sub Inserir_hora()

Exibir = "Digite a hora ou Selecione uma Célula:"

Título = "INSERT TEMPO/HORA"

Tipo = 10

hora = Application.InputBox(Prompt:=Exibir, Title:=Título, Type:=Tipo, Default:="Formato Hora (hh:mm:ss) ex.:24:30:54")

Hr = Hour(hora)

Mn = Minute(hora)

Sg = Second(hora)

If Sg > 0 Then

hora_tt = Hr & "s"

End If

If Mn > 0 Then

hora_tt = Mn & "m" & Sg & "s"

End If

If Hr > 0 Then

hora_tt = Hr & "h" & Mn & "m" & Sg & "s"

End If

Selection.Value = hora_tt

End Sub

Ela extrai os valores de Hora/Minuto/Segundo da inputbox selecionada, para ficar igual vemos nas contas de telefone cp, formato 01h20m08s, porém não consigo configurar para que o formato do tempo venha com dois dígitos igual ao exemplo...

Da maneira que está ta retornando valor como 1h20m8s... Preciso que fique assim 01h20m08s...

Alguém consegue me ajudar?

Postado

 

tente isso...

hora_tt = Format(Hr, "00") & "h" & Format(Mn, "00") & "m" & Format(Sg, "00") & "s"

Pô valeu Basole, resolveu certinho... Bem o que precisava.... Abraço!

Postado

Amigo, me surgiu mais problema... Até aí tudo OK...

Problema é que surgiu uma data maior que 24h... tipo "48:51:53" e ao invés de retornar o valor "2931m53s", esta retornando valor 51m53s...

 

Vê se consegue me ajudar aí... valeu abraço!

Postado
Problema é que surgiu uma data maior que 24h... tipo "48:51:53" e ao invés de retornar o valor "2931m53s", esta retornando valor 51m53s... 

O código, da maneira que foi escrito, quando. se insere a hora maior que 24, ele converte para 1 dia + os respectivos minutos+ segs. e aparece neste formato.

veja se dessa forma te ajuda:

Sub Inserir_hora()    Dim Exibir, Título, Tipo, hora, Hora_tt, Hr, Mn, SG    Exibir = "Digite a hora ou Selecione uma Célula:"    Título = "INSERT TEMPO/HORA"    Tipo = 10    hora = Application.InputBox(Prompt:=Exibir, Title:=Título, Type:=Tipo, Default:="Formato Hora (hh:mm:ss) ex.:24:30:54")    If Left(hora, 1) < 1 Then        Hr = Format(Hour(hora), "00") & "h"        Mn = Format(Minute(hora), "00") & "m"        SG = Format(Second(hora), "00") & "s"    Else        Hr = ""        Mn = Format(Left(hora, 1) * 24 * 60 + Minute(hora), "00") & "m"        SG = Format(Second(hora), "00") & "s"    End If   If SG > 0 Then        Hora_tt = Hr & "s"    End If    If Mn > 0 Then       Hora_tt = Mn & SG    End If    If Hr > 0 Then               Hora_tt = Hr & Mn & SG    End If    Selection.Value = Hora_ttEnd Sub
Postado


Basole, consegui! Ufaaa!!!  :aplausos: 

Não consegui exatamente como você mandou, mas foi de grande ajuda, consegui fazer alguns ajustes para adaptar a minha necessidade.

segue código, vou postar a planilha teste que fiz se alguém mais precisar deste tipo de código.

Abraçççç!!!!

Sub Inserir_hora()On Error Resume Next      Exibir = "Digite a hora ou Selecione uma Célula:"   Título = "INSERT TEMPO/HORA"   Tipo = 10                hora = Application.InputBox(Prompt:=Exibir, Title:=Título, Type:=Tipo, Default:="Formato Hora (hh:mm:ss) ex.:24:30:54")                    If Left(hora, 2) <= 23 Then        Hr = Hour(hora)        Mn = Minute(hora)        SG = Second(hora)        If SG > 0 Then                Hora_tt = Format(SG, "00") & "s"                End If                If Mn > 0 Then                Hora_tt = Format(Mn, "00") & "m" & Format(SG, "00") & "s"                End If                If Hr > 0 Then                Hora_tt = Format((Hr * 60) + Mn, "00") & "m" & Format(SG, "00") & "s"                End If                End If             If Left(hora, 2) > 23 Then             Hr = Format((Left(hora, 2) * 60) + (Mid(hora, 4, 2)), "00")        SG = Format(Mid(hora, 7, 2), "00")                Hora_tt = Format(Hr, "00") & "m" & Format(SG, "00") & "s"                End If                Selection.Value = Hora_tt          End Sub

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!