Macro para mostrar Horas, minutos y segundos en diferentes celdas

Para: Dante Amor

Ante todo un cordial saludo a un gran profesional en estos temas, tengo una macro que me diste en la que e agregado tiempos como hora minuto y segundo, pero estos se tienen que mostrar en diferentes celdas. En la fila (D) minutos y en la (F )segundos, espero que se entienda mi pregunta...

Gracias por la repuesta que me puedas dar.

Dim valor
'
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        'valor = Target
         Range("B" & Target.Row) = Date
         Range("C" & Target.Row) = Format(Now, "hh:mm")
        'Range("D" & Target.Row) = En esta fila se muestra solo minutos
        'Range("F" & Target.Row) = En esta fila se muestra solo segundos
        If valor <> "" And Target = "" Then
            Cells(Target.Row, "C") = ""
            Cells(Target.Row, "D") = ""
            Cells(Target.Row, "F") = ""
        End If
    End If
End Sub
'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        valor = Target
    End If
End Sub

2 Respuestas

Respuesta
1

Solo tienes que emplear las funciones de VBA HOUR y MINUTE

Dim hora As Integer, minuto As Integer, segundo as Integer
hora = Hour(Now)
minuto = Minute(Now)
segundo= Second(Now)

y en tu código:

 'Range("D" & Target.Row) = minute(now) En esta fila se muestra solo minutos
 'Range("F" & Target.Row) = second(now) En esta fila se muestra solo segundos

Espero te sirva.

Respuesta
1

H o l a:

Te anexo la macro actualizada

Dim valor
'
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        'valor = Target
        Range("B" & Target.Row) = Date
        Range("C" & Target.Row) = Format(Now, "hh")
        Range("D" & Target.Row) = Format(Now, "mm")
        Range("F" & Target.Row) = Format(Now, "ss")
        If valor <> "" And Target = "" Then
            Cells(Target.Row, "C") = ""
            Cells(Target.Row, "D") = ""
            Cells(Target.Row, "F") = ""
        End If
    End If
End Sub
'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        valor = Target
    End If
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas