Saltar al contenido

Poner fecha cuando una celda tiene datos


Recommended Posts

publicado

Buenas noches;

Estando en la cama, se me ha ocurrido algo que me vendría muy bien pero ni idea de como hacerlo, haber si alguien me puede ayudar.

necesito que se ponga automáticamente en la columna A (la fecha) y en la columna B (la hora), de cuando se ponga un dato en la columna C.

se podría hacer??.

muchísimas gracias de antemano

Fecha.xls

publicado

Incluye este código en la Hoja1, no en un módulo y me cuentas...

Por cierto, intenta utilizar la cama para pensar en cosas más interesantes...:D

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Columns("c")) Is Nothing Then
If Target.Row = 1 Then Exit Sub
Target.EntireRow.Columns("a") = Date
Target.EntireRow.Columns("b") = Time
End If
End Sub[/CODE]

Un saludo,

Tese

publicado

Otra forma usando solo una columna (A) para la fecha y la hora, por lo tanto los datos empezarían en la columna B.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row > 1 Then
If Trim(Target) = Empty Then
Target.Offset(0, -1) = Empty
Else
If Target.Offset(0, -1) = Empty Then
Target.Offset(0, -1) = Now
End If
End If
End If
End Sub[/CODE]

publicado

muchísimas gracias a los tres, funcionan perfectamente, ahora no se con que quedarme, esta tarde de pruebas jejeeejeee...

Pd: que razón tienes tese1969, la cama es para otras cosas mas interesantes jejejeee...

publicado

Pues está claro, Iphant, con cuál tienes que quedarte :D, la que hace exactamente lo que pedías.

La del maestro Macro es típica de su estilo (ahora pongo todo en una columna porque yo lo valgo y punto! :P) y después Armando y sus queridísimas fórmulas que quiere incluir dónde le dejen ;).

Y yo me pregunto, ¿es que no os gusta la mía? ó aún mejor ¿es necesario ofrecer 3 respuestas antes de que el usuario consultante diga algo a la primera?

Es que sois muy abusones...:D

Y sí, Iphant, por ejemplo, la cama sirve para apoyar el PC y en vez de pensarlo, ponerte a hacerlo!! :P

Cuidaros todos,

Tese

publicado

@[uSER=99562]tese1969[/uSER]

La del maestro Macro es típica de su estilo (ahora pongo todo en una columna porque yo lo valgo y punto! :P) y después Armando y sus queridísimas fórmulas que quiere incluir dónde le dejen ;).

A ti te quería pillar, mi solución es mucho mas mejor y bonita que la tuya, ¡ Zas en toda la boca!, eso para empezar, pero es que además hace mas cosas.

Si se borra la celda de la columna "B", también se borra la columna "A".

Si se modifica la columna "B", se mantiene el valor de la columna "A".

¿ Es eso lo que quería @[uSER=106393]lphant[/uSER]? Pues no lo se, pero me ha quedado preciosa la macro.

¡Qué! ¿ Como se te ha "quedao" el cuerpo ? :D:D:D

publicado

Pues, espérate, que aún no he parado de reír, pero vamos, que tu "mucho más mejor y bonita" es una frase claramente escrita tras la ingesta de algún tipo de código de evento como mínimo :D

Qué sería de la vida sin estos ratillos!

En fin, maestro, cuídate mucho, que a tu edad estos ataques de "macritis" no pueden venirte bien :P

Chao,

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      187
    • Comentarios
      97
    • Revisiones
      29

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    2    1

  • Crear macros Excel

  • Mensajes

    • Que tal nuevamente,  adjunto una solución alternativa: =MAX(A:.A)-BYROW(F4:.AK20,LAMBDA(r,BUSCAR(2,1/(r=0),F3:.AK3))) Cabe mencionar que esta solución requiere funciones nuevas como RECORTAR.RANGO. CONTADOR FINAL (Solucion).xlsb
    • Buenos días,  espero se encuentren bien de salud compañeros, Favor me podrían ayuda con lo siguientes como se podría hacer cuando tengo una tabla dinámica que  amedida que se aumente las columnas fechas con data un formula que se coloco al final busque o analice siempre la ultima fila y columna de la fecha. Coloco un ejemplo
    • @JSDJSD Excelentes, GRACIAS POR TU SOPORTE , me ayudo demasiado es exactamente lo que quería. 5 ESTRELLAS
    • 'Opción 1 Sub FiltrarSKUPorFecha(): Application.ScreenUpdating = False Dim ultimaFila As Long, fila As Long Dim diccionarioSKU As Object Dim listaEliminar As Object Dim fechaActual As String, fechaSiguiente As String Dim f As Variant With Sheets("Consolidado") ultimaFila = .Cells(.Rows.Count, 1).End(xlUp).Row ' Crear diccionarios para comparar SKU y almacenar filas a eliminar Set diccionarioSKU = CreateObject("Scripting.Dictionary") Set listaEliminar = CreateObject("Scripting.Dictionary") ' Recorrer desde la primera fila hasta la penúltima For fila = 2 To ultimaFila - 1 fechaActual = .Cells(fila, 1).Value fechaSiguiente = .Cells(fila + 1, 1).Value ' Solo comparar la fecha actual con la siguiente (inmediatamente superior) If fechaActual <> fechaSiguiente Then diccionarioSKU.RemoveAll ' Limpiar el diccionario antes de llenarlo ' Guardar los SKU de la fecha siguiente (solo de la siguiente) For f = fila + 1 To ultimaFila If .Cells(f, 1).Value <> fechaSiguiente Then Exit For diccionarioSKU(.Cells(f, 2).Value) = 1 Next f ' Revisar los SKU de la fecha actual y marcar los que deben eliminarse For f = fila To 2 Step -1 If .Cells(f, 1).Value <> fechaActual Then Exit For ' Solo eliminar si el SKU no está en la fecha siguiente If Not diccionarioSKU.exists(.Cells(f, 2).Value) Then listaEliminar(f) = 1 ' Marcar fila para eliminar después End If Next f ' Ya no es necesario seguir buscando después de comparar la primera y la siguiente fecha Exit For End If Next fila ' Eliminar las filas marcadas sin afectar el bucle principal For Each f In listaEliminar.keys .Rows(f).Delete Next End With MsgBox "Completado correctamente.", vbInformation End Sub 'Opción 2 Sub FiltrarSKUPorFecha1(): Application.ScreenUpdating = False Dim ultimaFila As Long, fila As Long Dim listaEliminar As Collection Dim fechaActual As String, fechaSiguiente As String Dim f As Variant, i As Long Dim SKUExiste As Boolean With Sheets("Consolidado") ultimaFila = .Cells(.Rows.Count, 1).End(xlUp).Row ' Inicializar la colección para marcar las filas a eliminar Set listaEliminar = New Collection ' Recorrer desde la primera fila hasta la penúltima For fila = 2 To ultimaFila - 1 fechaActual = .Cells(fila, 1).Value fechaSiguiente = .Cells(fila + 1, 1).Value ' Solo comparar la fecha actual con la siguiente (inmediatamente superior) If fechaActual <> fechaSiguiente Then ' Revisar los SKU de la fecha actual y marcar los que deben eliminarse For f = fila To 2 Step -1 If .Cells(f, 1).Value <> fechaActual Then Exit For ' Comprobar si el SKU está en la fecha siguiente SKUExiste = False For i = fila + 1 To ultimaFila If .Cells(i, 1).Value <> fechaSiguiente Then Exit For If .Cells(i, 2).Value = .Cells(f, 2).Value Then SKUExiste = True Exit For End If Next i ' Si el SKU no se encuentra en la fecha siguiente, marcar para eliminar If Not SKUExiste Then listaEliminar.Add f ' Marcar fila para eliminar después End If Next f ' Ya no es necesario seguir buscando después de comparar la primera y la siguiente fecha Exit For End If Next fila ' Eliminar las filas marcadas sin afectar el bucle principal For Each f In listaEliminar .Rows(f).Delete Next f End With MsgBox "Completado correctamente.", vbInformation End Sub   TABLA ELIMINAR.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.