Inserte el sello de fecha y hora con VBA

Insertar la fecha y hora en Excel usando VBA es tan simple como escribir una fórmula en una celda.

El código de la marca de tiempo de VBA es:

Rango("A1").valor = Formato(Ahora, "mm/dd/yyyy HH:mm:ss")

Este código mostrará la fecha y la hora actuales en la celda A1. Y sí, eso es todo. Está hecho.

La función "Ahora" devuelve la fecha y la hora actuales, y la función "Formato" formatea la salida en formato "mm/dd/aaaa HH:mm:ss".

Muestra la fecha y la hora cada vez que se hace un cambio usando VBA.

Digamos que has preparado una hoja. En esta hoja, quieres que la hora se muestre en la columna B siempre que alguien haga una entrada en la columna A.

Ahora necesitamos un código de tiempo VBA que se ejecute cada vez que se haga un cambio en la columna A.

El siguiente código hace el trabajo fácilmente.

Ejecutar la macro cuando se hace un cambio (Manejador de eventos de cambio de hoja de trabajo)

Destino de Hoja de trabajo secundaria privada_(Change ByVal como intervalo)

Si no hay nada en el Intersect (Target, Range("A:A")), entonces en el error se reanuda el siguiente.

Si el valor del objetivo = "", entonces el desplazamiento del objetivo (0, 1) = "".

Else

Objetivo.Compensación(0, 1).Valor = Formato(Ahora, "mm/dd/yyyy HH:mm:ss")

Finalizar si

End If End Sub

Para ejecutar este código, abra VBA y haga doble clic en la hoja de la ventana del proyecto en la que desea mostrar la marca de tiempo.

Ahora tenemos que usar el manejador de eventos de VBA ya que queremos ejecutar nuestro código para que se ejecute cada vez que se haga un cambio.

En el menú desplegable que está encima de tu código, selecciona Worksheet.

Ahora, junto a la hoja de cálculo, se ve otra hoja de cálculo. Contiene un montón de manejadores de eventos. Por ahora, selecciona "cambiar".

Ahora copie el código anterior aquí.

Y está hecho. Vuelve a tu hoja y compruébalo.

Explicación del código:

El código se escribe en la hoja 1 haciendo doble clic en ella. Significa que tu código pertenece sólo a esta hoja.

Usamos el manejador de eventos "Cambio" de la "Hoja de trabajo" para activar nuestro Código VBA.

Hoja de trabajo secundaria privada _Objetivo (ChangeByVal como intervalo)

Este es el nombre de subrutina fija y por defecto de un manejador de eventos de cambio.

Queremos que nuestro código para ejecutar el cambio se haga sólo en la columna A.

Si no es Intersect(Target, Range("A:A")) no es nada entonces

Esta línea comprueba si la celda cambiada está en la columna A o no.

Ahora, si la línea anterior devuelve True, entonces estas líneas se ejecutan

Sobre el error Reanudar siguiente

Si el valor del objetivo = "", entonces el desplazamiento del objetivo (0, 1) = "".

ElseTarget.Offset(0, 1).Value = Format(Ahora, "mm/dd/yyyy HH:mm:ss")

La primera línea ignora el error pop y ejecuta estas dos líneas. Si omite On Error Resume Next verá que aparece un error al borrar un valor de la columna A.

Si Valor.objetivo = "" entonces

:- Esta línea comprueba si una celda de la columna A está en blanco. Si es así, entonces

Objetivo. Compensación (0, 1) = ""

:- Esta línea borra el valor de la celda adyacente.

Y si es falso

Else

Objetivo.Compensación(0, 1).Valor = Formato(Ahora, "mm/dd/yyyy HH:mm:ss")

:- Esta línea introduce la hora y fecha actual en la columna adyacente a la A.

Y las tres últimas líneas cierran su respectivo bloque. Y ya está hecho. Ahora tienes una hoja que da una hora exacta del cambio hecho en una celda de la columna A.

Habrás notado que hay varios manejadores de eventos en la lista desplegable. Juega con ellos. Intenta averiguar qué funciona cada manejador de eventos. Y si tienes alguna dificultad, escríbela en la sección de comentarios.

Leave a Reply

Your email address will not be published. Required fields are marked *

Terms and Conditions of use

The applications/code on this site are distributed as is and without warranties or liability. In no event shall the owner of the copyrights, or the authors of the applications/code be liable for any loss of profit, any problems or any damage resulting from the use or evaluation of the applications/code.