Note: The other languages of the website are Google-translated. Back to English

¿Cómo agregar / ingresar automáticamente la fecha / hora actual en una celda con doble clic en Excel?

Si necesita insertar la fecha actual o la fecha y hora con frecuencia en una hoja de trabajo, puede probar el método de este artículo. Este artículo lo ayudará a agregar o ingresar automáticamente la fecha actual o la fecha en celdas de un rango específico con solo hacer doble clic.

Haga doble clic para agregar / ingresar automáticamente la fecha actual o la fecha y hora con el código VBA


Haga doble clic para agregar / ingresar automáticamente la fecha actual o la fecha y hora con el código VBA

Puede ejecutar el siguiente código VBA para agregar automáticamente la fecha actual o la fecha y hora en una celda haciendo doble clic. Haz lo siguiente.

1. Haga clic con el botón derecho en la pestaña Hoja en la que desea insertar la fecha actual en las celdas especificadas, luego seleccione Ver código desde el menú contextual.

2. En el Microsoft Visual basic para aplicaciones ventana, copie y pegue el siguiente código VBA en la ventana Código.

Código de VBA: haga doble clic para agregar la fecha actual en una celda

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A1:B10")) Is Nothing Then
        Cancel = True
        Target.Formula = Date
    End If
End Sub

Notas:

1. En el código, A1: B10 es el rango al que agregará la fecha actual.
2. Si necesita agregar la fecha y hora actual en la celda, reemplace Fecha con Ahora() en el código. Puede cambiarlos cuando lo necesite.

3. Prensa otro + Q teclas simultáneamente para cerrar el Microsoft Visual Basic para aplicaciones ventana y vuelva a la hoja de trabajo.

A partir de ahora, al hacer doble clic en cualquier celda en el rango especificado A1: B10. La fecha actual o la fecha y hora se ingresarán automáticamente.


Artículos relacionados:


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Comentarios (28)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
¿Cómo extendemos esto para agregar más rango de celdas? Agregué estas celdas adicionales al código: (Objetivo, Rango ("C10: C19", "D10: D19", "E10: E19")) sin embargo, me está dando un error de compilación que dice "número incorrecto de argumentos o asignaciones de propiedades no válidas" y luego resalta la primera línea de código que proporcionó "Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean)" Por favor, ayúdenme.
Este comentario fue minimizado por el moderador en el sitio
Joel, no sé si todavía estás buscando una solución, pero necesitas cambiar tu código:

De: (Objetivo, Rango("C10:C19", "D10:D19", "E10:E19"))
Hasta: (Objetivo, Rango("C10:C19,D10:D19,E10:E19"))

Esto lo hará por ti.
Este comentario fue minimizado por el moderador en el sitio
Hola Nick,
Me gustaria que me asesoraras sobre este tema....
Tengo un archivo que llamo "hoja de productividad"... En esta hoja me gustaría insertar el tiempo real, en las celdas seleccionadas, cuando se hace clic en la celda... (Si es posible, me gustaría que estas celdas después de que el tiempo parece volverse inmutable... algo así como estar bloqueado).
Agradezco su tiempo y gracias de antemano.
Atila, Hungría
exyzee@gmail.com
Este comentario fue minimizado por el moderador en el sitio
Estimado Atila,
Intente con la siguiente captura de pantalla para insertar el tiempo real hasta la celda en un rango determinado cuando se hace clic en ella.
(La función de bloqueo automático de celdas no se puede lograr, lo siento)

Sub hoja de trabajo privada_Cambio de selección (rango de destino ByVal)
Application.ScreenUpdating = False
Si no intersecta (objetivo, rango ("A1: B10")) no es nada, entonces
Cancelar = True
Objetivo.Fórmula = Fecha
Si terminar
End Sub
Este comentario fue minimizado por el moderador en el sitio
El código realmente funciona... Gracias... he añadido otro código para proteger la celda después de la entrada de datos. Ahora el problema es que, una vez que ingreso los datos y la celda está protegida y por error si hago doble clic en la celda protegida, el código anterior sale mal para toda la hoja. Entonces no funciona. Tengo que desproteger la hoja para activar el código. ¿Alguna solución?

El código de protección utilizado es el siguiente:

Sub hoja de trabajo privada_Cambio (según el rango de destino ByVal)
Dim xRg como rango
On Error Resume Next
Establecer xRg = Intersecar(Rango("A1:a1000,b1:b1000,G1:G1000"), Objetivo)
Si xRg no es nada, salga de Sub
Destino.Hoja de trabajo.Desproteger Contraseña:="123"
xRg.Bloqueado = Verdadero
Destino.Hoja de trabajo.Contraseña de protección:="123"
End Sub
Este comentario fue minimizado por el moderador en el sitio
Querido Paul:
Probé con el código que me proporcionaste. Toda la hoja de trabajo estará protegida inmediatamente una vez que ingrese los datos en cualquiera de las celdas protegidas especificadas.
Además, al hacer doble clic en la celda protegida, nada cambia en el código en mi caso.
¿Podría explicar qué está tratando de hacer exactamente con el código?
Este comentario fue minimizado por el moderador en el sitio
Lo siento, entiendo tu punto. (pierde el código anterior)
Este comentario fue minimizado por el moderador en el sitio
El código de entrada de doble clic creado es:


Subhoja de trabajo privada_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A1:a1000")) No es nada Entonces
Cancelar = True
Objetivo.Fórmula = Fecha
Si terminar

If Not Intersect(Target, Range("b1:b1000")) No es nada Entonces
Cancelar = True
Objetivo.Fórmula = Tiempo
Si terminar

Si no intersecta (objetivo, rango ("g1: g1000")) no es nada, entonces
Cancelar = True
Objetivo.Fórmula = Tiempo
Si terminar
End Sub
Este comentario fue minimizado por el moderador en el sitio
Querido Paul:
Intente con el siguiente código VBA.

Sub hoja de trabajo privada_Cambio (según el rango de destino ByVal)
Dim xRg como rango
On Error Resume Next
Establecer xRg = Intersecar(Rango("A1:a1000,b1:b1000,G1:G1000"), Objetivo)
Si xRg no es nada, salga de Sub
Destino.Hoja de trabajo.Desproteger Contraseña:="123"
xRg.Bloqueado = Verdadero
Destino.Hoja de trabajo.Contraseña de protección:="123"
End Sub

Subhoja de trabajo privada_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.EnableEvents = False
ActiveSheet.Desproteger Contraseña:="123"
If Not Intersect(Target, Range("A1:a1000")) No es nada Entonces
Cancelar = True
Objetivo.Fórmula = Fecha
Si terminar
If Not Intersect(Target, Range("b1:b1000")) No es nada Entonces
Cancelar = True
Objetivo.Fórmula = Tiempo
Si terminar
Si no intersecta (objetivo, rango ("g1: g1000")) no es nada, entonces
Cancelar = True
Objetivo.Fórmula = Tiempo
Si terminar
Contraseña ActiveSheet.Protect:="123"
Application.EnableEvents = True
End Sub
Este comentario fue minimizado por el moderador en el sitio
Copié y pegué el código actualizando el rango y no funcionó :-(


Subhoja de trabajo privada_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Si no intersecta (objetivo, rango ("B4: B100")) no es nada, entonces
Cancelar = True
Objetivo.Fórmula = Ahora()
Si terminar
End Sub
Este comentario fue minimizado por el moderador en el sitio
Buenos días,
El código funciona bien en mi caso. ¿Me puede decir su versión de Office?
Este comentario fue minimizado por el moderador en el sitio
Hola, el código que diste funciona muy bien. Tengo curiosidad por saber si hay alguna forma de tener el texto "doble clic para agregar fecha" en la celda hasta que se ingrese la fecha. Gracias de antemano (estoy tratando de hacer que mi documento sea lo más fácil de usar posible para no confundir a mis compañeros de trabajo)
Este comentario fue minimizado por el moderador en el sitio
Hola, el código anterior funcionó muy bien para mí. Ahora solo me pregunto si hay una manera de que el texto "Haga doble clic para ingresar la fecha" aparezca en la celda hasta que se ingrese la fecha. Mi objetivo es hacer que el documento sea lo más fácil de usar posible. Gracias de antemano
Este comentario fue minimizado por el moderador en el sitio
Hola Travis,
No podemos modificar el código para mostrar texto en la celda directamente. Pero alternativamente, el código optimizado a continuación ayudará a mostrar el texto en el comentario de la celda, y el comentario se eliminará automáticamente después de hacer doble clic en la celda para ingresar la fecha.

Sub hoja de trabajo privada_Cambio de selección (rango de destino ByVal)
Si no intersecta (objetivo, rango ("A1: B10")) no es nada, entonces
Target.NoteText "doble clic para agregar fecha"
Si terminar
End Sub

Subhoja de trabajo privada_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Si no intersecta (objetivo, rango ("A1: B10")) no es nada, entonces
Cancelar = True
Objetivo.Comentario.Eliminar
Objetivo.Fórmula = Fecha
Si terminar
End Sub
Este comentario fue minimizado por el moderador en el sitio
Hola,

Copié y pegué el código anterior exactamente como está escrito en un libro de trabajo en blanco, sin embargo, no funciona para mí. Miré diferentes fuentes en la web y la mayoría de los sitios tienen un formato similar al que está escrito arriba. Creo que tal vez hay algún problema con mi VBA o algunas configuraciones no están activadas. Cualquier consejo sería muy apreciado. Estoy ejecutando Excel para Office 365 MSO (16.0.11001.20097) de 32 bits en Windows 10.
Este comentario fue minimizado por el moderador en el sitio
Me encanta el código y funciona muy bien. ¿Cómo puedo hacer que cuando hago doble clic para ejecutar el código, muestre la hora en horario militar?
Este comentario fue minimizado por el moderador en el sitio
Hola dylan
Lo siento, no puedo ayudarte con eso todavía. Gracias por tu comentario.
Este comentario fue minimizado por el moderador en el sitio
Creo que si selecciona el formato de hora militar para esa celda desde las opciones Formato -> Número -> Hora en su hoja, eso debería funcionar. Por ejemplo, ofrece la opción de 1:30 p. m. o 13:30, por lo que solo seleccionaría 13:30 y eso debería funcionar.
Este comentario fue minimizado por el moderador en el sitio
Creo que si solo selecciona el formato de Hora militar para esa celda desde las opciones Número -> Formato de hora, eso debería hacerlo. Por ejemplo, seleccionaría 13:30 en lugar de 1:30 p. m. y luego debería mostrarse en hora militar.
Este comentario fue minimizado por el moderador en el sitio
¿Alguien sabe si hay alguna forma de insertar este código en Excel Online? Lo había usado con la versión de escritorio y funcionó muy bien, pero ahora hemos migrado todo a la plataforma en línea y mis marcas de fecha y hora en el doble clic han desaparecido y no puedo encontrar la forma de ver o editar el código. Gracias.
Este comentario fue minimizado por el moderador en el sitio
Así que inserté el código y funciona muy bien en varias hojas de mi libro de trabajo, sin embargo, en algunas hojas de repente deja de funcionar después de cierta fila a pesar de que ingresé el rango correcto. Cualquier idea sobre por qué esto podría suceder.
Este comentario fue minimizado por el moderador en el sitio
Esto era justo lo que estaba buscando: me ahorra mucho tiempo y agradezco las instrucciones bien escritas. ¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Hola, el código hizo mucho por mí. ¿Cómo puedo restringir el código para que funcione solo si el campo está en blanco? Si ya hay una fecha en la celda, hacer doble clic no debería hacer nada, saludos
Este comentario fue minimizado por el moderador en el sitio
Hola Ahmed,
Lo siento por la molestia. Para completar solo las celdas en blanco con fechas haciendo doble clic, puede aplicar el siguiente código VBA para hacerlo.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Updated by Extendoffice 20220609
    If Not Intersect(Target, Range("B1:C20")) Is Nothing Then
        If Target.Value = "" Then
            Cancel = True
            Target.Formula = Date
        End If
    End If
End Sub
Este comentario fue minimizado por el moderador en el sitio
Esta función no funcionó. Hacer doble clic simplemente ingresa a la edición manual de la celda.
Este comentario fue minimizado por el moderador en el sitio
Hola Bob,
El código funciona bien en mi caso. Necesito información más específica sobre su problema, como su versión de Excel.
Y el código solo funciona en las celdas que especificó.
Este comentario fue minimizado por el moderador en el sitio
Hola a todos,

Intento usar esa macro para usar el sello de fecha haciendo doble clic en la columna E y funciona, pero cuando intento replicar la macro para hacer lo mismo, pero para la hora actual en la columna F, no funciona como puede ver adjunto tengo un mensaje de error que indica: Nombre ambiguo detectado.
Cuando trato de cambiar la parte Sub WorkSheet por otro nombre y hago doble clic en las celdas, no sucede nada.

¿Alguien podría ayudarme en eso?

Mi código :


Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Si no intersecta (objetivo, rango ("E1: E10000")) no es nada, entonces
Cancelar = True
Objetivo.Fórmula = Fecha
Si terminar
End Sub

Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Si no intersecta (objetivo, rango ("F1: F10000")) no es nada, entonces
Cancelar = True
Objetivo.Fórmula = Ahora()
Si terminar
End Sub
Este comentario fue minimizado por el moderador en el sitio
Hola Louis,
La replicación de la macro generará dos procedimientos iguales con el mismo nombre en una ventana de código de una sola hoja. Excel no permite dos o más nombres iguales de funciones en un módulo. Ni siquiera en Eventos. Conduce a la ambigüedad.
Si desea realizar una tarea diferente en el mismo evento, debe modificar el código original para satisfacer sus necesidades.
El siguiente código de VBA puede hacerte un favor. Por favor inténtalo.
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Updated by Extendoffice 20221025
    If Not Intersect(Target, Range("E1:E10000")) Is Nothing Then
        Cancel = True
        Target.Formula = Date
    End If
    If Not Intersect(Target, Range("F1:F10000")) Is Nothing Then
        Cancel = True
        Target.Formula = Date
    End If
End Sub
No hay comentarios publicados aquí todavía
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL