Ir ao conteúdo

Excel Não consigo copiar uma macro para colocar os dois pontos automaticamente


Ir à solução Resolvido por OreiaG,

Posts recomendados

Postado

Olá! Tudo bem??

Por meio deste post do site:

Tentei copiar o código para automatizar os dois pontos no Excel, mas o mesmo insiste em não funcionar.

Minha dificuldade está no local onde eu tenho que copiar o código, e qual adaptação do intervalo da macro tenho que fazer.

Sou iniciante no programa...

 

Código:

 

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim TimeStr As String
On Error GoTo EndMacro
If Application.Intersect(Target, Range("B8:B13")) Is Nothing Then
Exit Sub
End If
If Target.Cells.Count > 1 Then
Exit Sub
End If
If Target.Value = "" Then
Exit Sub
End If
Application.EnableEvents = False
With Target
If .HasFormula = False Then
Select Case Len(.Value)
Case 1 ' e.g., 1 = 00:01 AM
TimeStr = "00:0" & .Value
Case 2 ' e.g., 12 = 00:12 AM
TimeStr = "00:" & .Value
Case 3 ' e.g., 735 = 7:35 AM
TimeStr = Left(.Value, 1) & ":" & _
Right(.Value, 2)
Case 4 ' e.g., 1234 = 12:34
TimeStr = Left(.Value, 2) & ":" & _
Right(.Value, 2)
Case 5 ' e.g., 12345 = 1:23:45 NOT 12:03:45
TimeStr = Left(.Value, 1) & ":" & _
Mid(.Value, 2, 2) & ":" & Right(.Value, 2)
Case 6 ' e.g., 123456 = 12:34:56
TimeStr = Left(.Value, 2) & ":" & _
Mid(.Value, 3, 2) & ":" & Right(.Value, 2)
Case Else
Err.Raise 0
End Select
.Value = TimeValue(TimeStr)
End If
End With
Application.EnableEvents = True
Exit Sub
EndMacro:
MsgBox "Digite a hora sem os pontos"
Application.EnableEvents = True
End Sub

 

Qualquer ajuda conta.

Muito Obrigado!


 

  • Solução
Postado

Veja se ajuda. Funciona somente na coluna 4 (coluna D).

inserindo 8 >>> resulta 00:08

inserindo 27 >>> resulta 00:27

inserindo 342 >>> resulta 03:42

inserindo 1855 >>> resulta 18:55

 

Cole o código no módulo da planilha (para acessar o módulo >>> clique com o direito na guia da planilha >>> Exibir Código)

 

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Target.Value = "" Or Target.Column <> 4 Or Not IsNumeric(Target.Value) Then Exit Sub
  On Error GoTo fim
  Application.EnableEvents = False
  Select Case Len(Target.Value)
   Case 1: Target.Value = "00:0" & Target.Value
   Case 2: Target.Value = "00:" & Target.Value
   Case Else: Target.Value = Left(Target.Value, Len(Target.Value) - 2) _
     & ":" & Right(Target.Value, 2)
   End Select
fim:
  Application.EnableEvents = True
End Sub

 

  • Curtir 1
Postado

@OreiaG Acabei de testar e deu certo sim!

Teria como eu fazer isso para todas as colunas??

E com faço para selecionar a coluna que eu quero?

agora, Luis Guilherme Guarnieri disse:

@OreiaG Acabei de testar e deu certo sim!

Teria como eu fazer isso para todas as colunas??

E com faço para selecionar a coluna que eu quero?

No caso eu preciso para as colunas D E F G

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

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!